Una delle problematiche frequenti che ho incontrato nella stesura di domain model complessi è l'utilizzo di servizi di dominio all'interno di entità. Tra le varie possibilità ho trovato in rete e sperimentato tre diverse soluzioni:
- Service locator statico : crea non poche problematiche (vedi unit test)..personalmente da evitare
- Risoluzione delle dipendenze delle entità tramite DI : utilizzando per esempio NHibernate risulta piuttosto semplice risolvere la problematica usando un session interceptor
- Double dispatch : risulta di facile implementazione e il codice è immediatamente comprensibile
Riporto qui due link che parlano dell'ultima casistica:
Ovviamente queste sono considerazioni personali, ma sarei curioso di capire come tematiche di questo tipo vengono affronate quotidianamente (è molto facile in rete trovare esempi relativi a DDD legati a realtà più o meno semplici, ma casistiche complesse e più "reali" sono molto rare).