A számítógép-programozásban az adat osztály egy adatrekord, saját metódusok nélkül, csak getterekkel és setterekkel. Megsérti az egységbe zárás elvét, mivel a kliensek elkérik az értékeit, végrehajtanak velük valami műveletet, majd visszaírják az eredményeket az adat osztály példányába. Röviden, nem az osztály manipulálja az adatait, hanem a kliensei.

Új osztályok esetén előfordulhat, hogy még nincsenek meg a metódusai. Azonban figyelnünk kell az egységbe zárás elvére. Tehát, ha egy másik osztálynak dolga van ezzel az osztállyal, akkor azt a metódust ebbe az osztályba tegyük, és ne a kliensbe.

A kódszag kezelése: A nyilvános adattagokat elrejtjük getterek mögé. Töröljük a settereket. Átnézzük a kliens kódot, megkeressük azokat a metódusokat, amelyek panaszkodnak arra, hogy nem tudják manipulálni az osztályt, és áttesszük őket ebbe az osztályba. Megkeressük azokat a metódusokat, amelyek a gettereket hívogatják, és eldöntjük róluk, hogy hol van jobb helyük.

Van, amikor szükség van adat osztályokra, például a feljegyzés tervmintában. Itt is megszabadulunk a setterektől, és biztosítjuk másként is a példányok megváltoztathatatlanságát (lásd például gyűjtemények). A kliensek csak kérhetnek egy példányt, és helyettesíthetik egy másikkal, de az adott példányt nem változtathatják meg.

Forrás Refractoring Guru

Kategória:Programozási antiminták