Plusy i minusy dwóch "ideologii" programistycznych w Javie

0

Chodzi mi tu o dwie całkowicie sobie przeciwne ideologie: God Class i klasy jednozadaniowe.

Podczas gdy w programowaniu strukturalnym posiada się dwie różne metody:

  • od ogółu do szczegółu - najpierw wykonuje się ogólne założenia, by coraz bardziej je poprawiać
  • od szczegółu do ogółu - pisze się minikod wykonujący pojedyncze zadania, a następnie łączy się zbiór minikodów w coś większego

W programowaniu obiektowym spotkałem się z takimi metodami pisania:

  • God Class - jedna klasa wykonująca większość zadań
  • klasy jednozadaniowe - dużo klas, każda z nich wykonuje inne zadanie

Jakie są plusy i minusy tych dwóch metod (czy jak to inaczej nazwać)? Zaczynam nowy projekt i krótko mówiąc nie wiem, co będzie lepsze. Klasy jednozadaniowe są na pewno czytelniejsze, ale gdy kiedyś postanowiłem pisać tą metodą, i tak zrobiłem później coś w rodzaju klasy-managera, który był łącznikiem między klasami.

3

Jest jeden minus "god object" - za użycie gdziekolwiek grozi kastracja.

1

Cytując wikipedię: http://en.wikipedia.org/wiki/God_object

In object-oriented programming, a god object is an object that knows too much or does too much. The god object is an example of an anti-pattern.

Anti-pattern czyli wzorzec którego nie należy powielać.

1

@ShookTea mylisz zupełnie rozłączne sprawy.
Sposób pisania kodu metodą top-down i bottom-up nie ma NIC WSPÓLNEGO ze stosowaniem god-objectu. Metoda top-down zakłada że najpierw piszesz wysokopoziomowy kod, zostawiając wszędzie wywołania pustych metod (także pustych metod innych klas), a potem dodajesz ich implementację. Metoda bottom-up zakłada że zaczynasz pisanie kodu od pisania konkretnych funkcjonalności a potem składasz to do kupy.

Jak widzisz żadna z tych metod nijak nie wymusza robienia żadnych god-objectów. Nie ma praktycznie żadnych plusów pisania god-objectu. Może poza takim że czasami jest trochę łatwiej coś napisać jak masz dostęp do wszystkiego (i nie umiesz korzystać z takich rzeczy jak IoC), ale taki kod jest później niemożliwy w utrzymaniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1