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.