Forget about data structures, DTOs, POJOs, and anemic objects.
TL;DR: Avoid external manipulation
Problems Addressed
Encapsulation Violation
Anemic Models
Related Code Smells

Code Smell 01 - Anemic Models
Maxi Contieri ・ Oct 20 '20
Steps
- 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

Refactoring 001 - Remove Setters
Maxi Contieri ・ Nov 17 '21
Credits
This article is part of the Refactoring Series.
Top comments (0)