Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
przeciez napisalem wyżej conajmniej parę razy, że gettery i settery to rak z punktu widzenia interfejsu. Ale mówienie, że łamie enkapsulację to imo nadużycie - owszem, implementacja w 99.9999% przypadków działa tak, jakbyś łamał enkapsulację bezpośrednio przez wpisywanie do pola, ale właśnie sam fakt stworzenia metody opakowującej to działanie powoduje, że do łamania enkapsulacji nie dochodzi, a conajwyżej do zbudowania chujowego interfejsu. Also, disclaimer - gettery nie są koniecznie złe, ale trzeba je stosować tam, gdzie faktycznie odpowiedzialnością jest pobieranie danych ( najczęściej jest to Read Model )
A tak w ogóle, to argument pt ,,poczytaj mądrzejszego od siebie" jest argumentem conajwyżej dla gimbusów, ktorzy jarają się wszystkimi "guru" programowania i w życiu nie poddadzą w wątpliwość to, co przeczytają/usłyszą, więc proponowałbym dać spokój sobie z czymś takim xD
Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
Przykładowymi metodami dla, załóżmy, implementacji forum ala torg, byłyby dla mnie ( metody nie są statyczne, podaje tylko interfejs. ) :
Kod :
Context/Browsing/Aggregate/Forum/Forum::lockThread(User lockingUser, ThreadId thread) -> <bronienie inwariantów na forum> -> Context/Moderation/Aggregate/Forum/Thread::lock(User lockingUser) -> <opcjonalna zmiana stanu, emisja zdarzeń domenowych>
Context/Discussion/Aggregate/Thread/Thread::postAMessage(User postingUser, Post postedMessage) -> <bronienie inwariantów na wątku, opcjonalna zmiana stanu, emisja zdarzeń domenowych>
- Nazwy metod, które mówią co ta metoda robi
- Metody wykonują realną pracę i nie wybebeszają logiki biznesowej
Zakładki