2010-01-28 5 views
9

Il nostro team è abbastanza nuovo per DDD e sta cercando di implementare alcuni dei concetti del nostro progetto corrente. Una domanda che è venuta fuori è se mettere i metodi in oggetti entità, o oggetti di servizio.in entità DDD vs servizi

Alcuni membri del team ritengono che le entità debbano contenere solo valori e tutte le funzionalità dovrebbero essere contenute nei servizi. Altri ritengono che ciò renda anemici gli oggetti dell'entità e che debbano detenere funzionalità relative all'entità, mentre gli oggetti di servizio dovrebbero essere utilizzati per funzionalità più trasversali.

Ci chiediamo quale sia il punto di vista formale del DDD su questo, così come quello che ha funzionato per le persone nella vita reale.

risposta

7

Non esiste un punto di vista formale per DDD, ma l'intero scopo di un modello di Domaim è quello di evitare uno Anemic Domain Model, quindi rifiutarsi esplicitamente di mettere qualsiasi comportamento sugli oggetti di dominio va contro lo spirito di esso.

Una scuola di pensiero ritiene che gli oggetti dominio dovrebbero essere POCO/POJO, il che significa che non devono contenere servizi astratti come membri. Tuttavia, ciò non significa che non possano avere metodi che interagiscono con con tali servizi.

Più il comportamento (rilevante) è possibile assegnare a ciascun oggetto dominio, meglio è.