Antypattern „God object”

Antypattern zwany „God object” albo także „God class” powstaje w naszym kodzie, gdy obiekt danej klasy zawiera zbyt dużo informacji lub ma zbyt dużo odpowiedzialności.

Jest to złamanie jednej z podstawowych zasad programowania obiektowego, która mówi o tym, by klasa posiadała dokładnie jedną odpowiedzialność.

Co możemy zrobić, by zapobiec tego typu antypatternom? Otóż konstruowane klasy powinny mieć jeden jasny cel i tylko jego realizować. Klasy te powinny zawierać tylko dane i metody, które pracują na realizację tegoż celu. I nic więcej! Jeśli zorientujemy się, że nasza klasa robi coś więcej niż jedną rzecz, najlepiej odzwierciedloną w nazwie tej klasy, to powinniśmy podzielić ja na mniejsze. To samo dotyczy metod.

Zdecydowanie powinniśmy unikać klas czy metod „wszechmogących”, gdyż prowadzi to do bałaganu w kodzie i zgromadzenia bardzo dużej zależności w jednym miejscu.

Jeśli więc zauważymy, że nasza klasa zapisuje dane do bazy, wyświetla komunikaty a do tego wysyła emaile, to znaczy, że coś jest nie tak!!! Taką klasę powinniśmy rozdzielić na trzy – tą zapisującą dane do bazy, tą wyświetlająca komunikaty i tą wysyłąjącą emaile.

Antypattern „Object orgy”

Antypattern „Object orgy” powstaje w naszym kodzie, kiedy złamiemy zasady enkapsulacji i elementom nadamy zbyt szeroki dostęp.

Po pierwsze zmniejsza to czytelność tego co się dzieje w aplikacji a po drugie w najgorszym razie wszyscy mają dostęp do wszystkiego.

Jak tego uniknąć? Nadawajmy dostęp do elementów rozważnie za pomocą modyfikatorów dostępu oraz zastanówmy się dwa razy zanim udostępnimy jakieś dane naszej klasy na zewnątrz.