Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: Encje w DDD
Witajcie,zastanawia mnie od dłuższego czasu jedna kwestia. Poznając DDD można zauważyć, że wiele nacisku jest dane na to by nie produkować "anemicznego modelu domeny", czyli modelu, w którym cały kod przeniesiony jest do klas usługowych, a encje są kontenerami na dane.
Logicznym więc jest, że w tym wypadku to Encje (i również Aggregate Roots) będą obiektami w których najwięcej się "dzieje". Problem pojawia się w momencie, gdy encja potrzebuje jakieś obiekty kolaborujące by sprawnie działać.
Z drugiej strony, wszelakie biblioteki typu ORM, dzięki którym utrwalamy encje wymagają np. bezargumentowego konstruktora. Jak wobec tego rozwiązać ten dylemat ? Co będzie lepszą praktyką ?
1. dostarczanie obiektów kolaborujących w konstruktorze
2. dostarczanie obiektów kolaborujących jako argument konkretnej metody
3. użycie wzorca strategi, gdzie dla danej metody encji, dostarczamy jakiś "black box", który posiada już wszystkie zależności
Jakie jest Wasze zdanie ?