Refactoring 009 - Protect Public Attributes

Refactoring 009 - Protect Public Attributes

Forget about data structures, DTOs, POJOs, and anemic objects.

Maxi Contieri
·Oct 25, 2022·

1 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

Table of contents

  • Problems Addressed
  • Related Code Smells
  • Steps
  • Sample Code
  • Type
  • Safety
  • Why code is better?
  • Limitations
  • Tags
  • Related Refactorings
  • Credits

TL;DR: Avoid external manipulation

Problems Addressed

  • Encapsulation Violation

  • Anemic Models

Related Code Smells

Steps

  1. Change the visibility of your attributes from public to private.

Sample Code

Before

public class Song {
   String artistName;
   String AlbumName;
}

After

public class Song {
   // 1- Change the visibility of your attributes from public to private
   private String artistName;
   private String AlbumName;

  // We cannot access attributes until we add methods
}

Type

[X] Semi-Automatic

We can change the visibility with an IDE or text editor.

Safety

This is not a safe refactor.

Existing dependencies may break.

Why code is better?

We can change encapsulated code easily.

The code is not repeated.

Limitations

Some languages don't have visibility options.

Tags

  • Anemic

Related Refactorings

Credits

Image by Couleur on Pixabay


This article is part of the Refactoring Series.

 
Share this