DDD in pillole #7 - Dai comandamenti alle Entity poco "responsabili" (o Anemiche)

ate queste 5 gemme (soprattutto per l'ultima)...Il risultato a più alto impatto nel vostro codice sarà:

Oggetti di dominio che non avranno più responsabilità specifiche di visualizzazione, binding, persistenza, e varie attività funzionali.
Il loro compito sarà maggiormente concentrato nell'esprimere (nel codice) i concetti del modello analitico.

Vediamo come si può mantenere poco inquinata una Entity del Dominio, delegando a chi di dovere...le proprie responsabilità.
(Ho messo tra parentesi dei framework di esempio, ovviamente  che ci possono essere d'aiuto, la cui scelta è puramente tecnlogica, ma dal punto di vista architetturale...l'importante è rispettare la delega)

Responsabilità di Persistenza:
Delegate nel Layer Infrastrutturale di storage (posso usare NHibernate).

Responsabilità di Configurazione, Assemblaggio e Wiring:
Delegate nei Layer infrastrutturali (posso usare Spring.NET)

Responsabilità di Visualizzazione, Ordinamento, Binding:
Delegata nel Layer di UI (posso usare ObjectViews).

Responsabilità di Sicurezza, Transazioni, Logging:
Delegata a configurazioni (posso usare Spring.NET AOP)

Responsabilità di Validazione Contestuale:
Delegata nel Layer di Business/Application (posso usare NRuleValidator).

Vuol dire che le entity non devono contenere logica di business?
No. Tuttaltro. Qualsiasi metodo/funzione che non dipenda dai servizi che ho precedentemente delegato può essere contenuto in oggetti di dominio.

A breve un esempio di layering e anche di come possa essere partizionata la logica di business.

Qualche ringraziamento:
A luka per l'idea delle letteronze :-)
Al pres per le belle discussioni architetturali fatte davanti ad un buon mirto, o del buon vino a seconda dei casi.
A luca del tongo, che in pratica ha dato il LA a questa serie di post semplicemente chiedendomi via mail: "Che ne pensi delle entità anemiche?" :-)

Nei prossimi post vedremo come affrontare il layering vero e proprio.

Print | posted on mercoledì 6 settembre 2006 13.25

Comments on this post

# Re: DDD in pillole #7 - Dai comandamenti alle Entity poco "responsabili" (o Anemiche)

Requesting Gravatar...
private int continuaCosì;<br />:-)
Left by Igor Damiani on set 06, 2006 2.19

# re: DDD in pillole #7 - Dai comandamenti alle Entity poco &quot;responsabili&quot; (o Anemiche)

Requesting Gravatar...
la variabile è anche in camelCase....che precisino!
Grazie!
Left by Giancarlo Sudano on set 06, 2006 2.32

# re: DDD in pillole #7 - Dai comandamenti alle Entity poco &quot;responsabili&quot; (o Anemiche)

Requesting Gravatar...
Non conoscevo ObjectViews ho visto da sourceforge che è una alpha1, è abbastanza stabile?
Left by Antonio Ganci on set 06, 2006 8.15

# re: DDD in pillole #7 - Dai comandamenti alle Entity poco &quot;responsabili&quot; (o Anemiche)

Requesting Gravatar...
Alle mie entità è rimasta la responsabilità del binding ma appena avrò tempo scorporerò anche questo.

Gran bel post.

cià.
Left by Tommaso Caldarola on set 07, 2006 5.13
Comments have been closed on this topic.