2017-01-29 1 views
0

je commence en DDD et je l'ai rencontré cette image:Lorsque je choisis d'utiliser l'un des scénarios suivants?

DDD Architecture

Je voudrais savoir quand je choisis d'utiliser l'un des scénarios suivants:

1º - UI -> application -> domaine -> Infra

2º - UI -> application -> Infra

3º - UI -> domaine

4º - UI -> Infra

Si quelqu'un peut me aider, je vous remercie énormément.

+0

Avez-vous besoin d'une réponse spécifique à C#? –

+0

@WilsonSantos Il s'agit du motif Layered Architecture du livre DDD original. Il est moins populaire ces jours-ci. Pour des alternatives plus récentes, voir Architecture hexagonale et Architecture d'oignon. Les questions que vous posez n'ont probablement aucun sens dans un environnement DDD typique de 2017. – guillaume31

+0

@ guillaume31 En pratique, l'architecture en couches avec DIP appliquée est à peu près la même que l'architecture hexagonale. Vous pouvez simplement remplacer «infrastructure» par «port & adaptateurs» et la mise en œuvre est la même, non? – plalx

Répondre

2

De l'image, je vois que vous faites référence à l'ancienne architecture en couches, dans sa forme détendue (les couches supérieures ne peuvent dépendre que des couches inférieures, à tout niveau inférieur).

Je donnerai votre langue exemples agnostique pour chaque scénario:

1º - UI -> Application -> Domaine -> Infra

Tel est le scénario le plus courant: l'utilisateur soumet un formulaire pour créer une nouvelle entité du UI; puis le UI rassemble les données du formulaire et appelle un service Application qui crée un nouvel objet entité (avec le nouvel opérateur ou en utilisant une fabrique), et le constructeur d'entité (qui réside dans la couche Domain) initialise l'entité; puis le service Application utilise les référentiels du Infrastructure (par exemple un référentiel SQL) pour conserver l'entité nouvellement créée.

2º - UI -> Application -> Infra

Cela pourrait être le scénario lorsque les UI vérifie si l'utilisateur a le droit d'accéder à une ressource en utilisant un service Application qui a lu certains fichiers à partir du disque en utilisant Infrastructure; la sécurité est une responsabilité de la couche Application.

3º - UI -> Domaine

Le UI appelle un service Domain pour effectuer un calcul; par exemple, le calcul de la TVA sur certains prix du produit afin d'afficher à l'utilisateur

4º - UI -> Infra

Le UI veulent montrer à l'utilisateur admin l'état de la connexion de base de données (qui est en la couche Infrastructure)

+0

Merci pour la réponse. –