Encje i zachowania
Jeżeli nasze Encje są mutowalne (w przeciwieństwie to ValueObjectów), to należy umożliwić ich zmienianie poprzez wykonywanie określonych reguł biznesowych.
Unikamy getterów i setterów dla encji. Niezmienniki zapewniamy przez wystawienie ifów.
Dany kontekst ma określone zestawy warunkowe.
Gdy niezmienniki zależne są od cyklu życia, rozbijamy zachowania na mniejsze metody, albo w szczególnym wypadku na mniejsze klasy.
Jeśli znajdziemy klasę, która ma bardzo, bardzo dużo stanów (np. wymagało by to napisania 20 klas) należy rozbić taki problem na mniejsze klastry. Np. określone stany dokumentów oznaczające cięcia procesów.
W takiej sytuacji dobrze jest używać wzorców projektowych takich jak
Strategia
Specyfikacja
Polityka
Memento
Kolekcje
Porównywanie danych
naturalny vs. wygenerowany klucz
naturalny (np. ISBN jeśli to książka)
wygenerowany ręcznie klucz
Last updated
Was this helpful?