Logo David Burdelak
Słownik · Programowanie i wzorce projektowe

Co to jest God Object?

Ostatnia aktualizacja:

Obiekt boski (God Object, God Class) to antywzorzec polegający na tym, że jedna klasa przejmuje zbyt wiele odpowiedzialności: przechowuje dużo danych, zawiera wiele metod i jest używana przez większość programu. Staje się centrum, od którego zależy cały system.

Jak go rozpoznać?

Klasa ma setki lub tysiące linii, nazwę w rodzaju Manager, Helper czy Utils, wiele niepowiązanych tematycznie metod i jest modyfikowana przy niemal każdej zmianie w projekcie. Zespoły często kłócą się o konflikty w tym jednym pliku.

Dlaczego to problem?

Trudno ją zrozumieć i przetestować, bo wymaga rozbudowanego przygotowania. Zmiana jednej funkcji grozi niezamierzonymi skutkami w innych. Taka klasa utrudnia też ponowne użycie kodu.

Jak rozbić?

Zidentyfikuj grupy powiązanych metod i danych, wydziel je do osobnych klas według zasady pojedynczej odpowiedzialności, a głównej klasie pozostaw rolę koordynatora, np. w formie fasady. Rób to stopniowo, wspierając się testami.

Powiązane pojęcia

Wszystkie hasła z kategorii Programowanie i wzorce projektowe