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 16: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 3: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 3:32

# 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 6:13
Comments have been closed on this topic.