2010-02-15 8 views
7

Sto facendo ricerche e un punto che voglio coprire è "Qual è la relazione tra la progettazione orientata al dominio e la programmazione orientata all'aspetto?"In che modo la progettazione basata su domini può essere combinata con la programmazione orientata all'aspetto?

So che un principio fondamentale nel DDD è la separazione delle preoccupazioni e lo capisco. Quello di cui non sono veramente certo è se gli aspetti in AOP agiscono come "sottodomini" nel nostro dominio in DDD.

Sono questi due concetti, fondamentalmente la stessa cosa. Voglio dire, se sviluppo un'applicazione seguendo AOP e DDD, alla fine della giornata sarà vero che "un sottodominio" == "un aspetto".

Apprezzerò anche altre opinioni su ciò che è comune tra AOP e DDD.

risposta

7

Uno degli obiettivi di DDD è avere una rappresentazione pura della logica aziendale che non sia influenzata dall'infrastruttura. Uno strumento molto potente per ottenere questo risultato è AOP. Uso principalmente AOP per sottodomini infrastrutturali come la registrazione, la memorizzazione nella cache, la convalida e la gestione delle eccezioni. In genere non utilizzo AOP per la logica aziendale effettiva, ma la convalida è una sorta di infrastruttura e logica aziendale.

Nei casi in cui AOP insinua nella logica aziendale, utilizzo gli attributi/annotazioni per richiamare il comportamento. Per altri problemi, userò la politica/configurazione per applicare gli aspetti.