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

Feedback

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

left by Igor Damiani at 06/09/2006 14.19 Gravatar
private int continuaCosì;<br />:-)

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

left by Giancarlo Sudano at 06/09/2006 14.32 Gravatar
la variabile è anche in camelCase....che precisino!
Grazie!

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

left by Antonio Ganci at 06/09/2006 20.15 Gravatar
Non conoscevo ObjectViews ho visto da sourceforge che è una alpha1, è abbastanza stabile?

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

left by Tommaso Caldarola at 07/09/2006 17.13 Gravatar
Alle mie entità è rimasta la responsabilità del binding ma appena avrò tempo scorporerò anche questo.

Gran bel post.

cià.
Comments have been closed on this topic.