Architecture Oignon vs architecture 3 couches

11

Je ne vois que des avantages pour l'architecture d'oignon par rapport à l'architecture à 3 couches où le BL avait la responsabilité d'appeler des méthodes sur DAL (ou une interface de DAL) pour faire CRUD. L'oignon a une meilleure séparation des préoccupations, la testabilité, la maintenabilité et est plus propre.

L'architecture de l'oignon est-elle en effet meilleure à tous égards et l'architecture à 3 couches est juste une ancienne façon de faire les choses, ou il y a des scénarios où je devrais préférer utiliser l'architecture à 3 couches, si oui - laquelle?

BornToCode
la source

Réponses:

10

Couches, oignons, ports, adaptateurs: tout est pareil

Étant donné que cet article indique clairement que l'oignon équivaut à 3 couches + application du principe d'inversion de dépendance (DIP), la question devient "où devrais-je préférer utiliser DIP?" Je dirais n'importe quel projet non jouet. L'utilisation de DIP permet au noyau de votre code d'être plus isolé, testable et maintenable. Lorsque vous ne vous souciez vraiment pas de cela, c'est lorsqu'il s'agit d'un projet à jeter ou lorsque vous échangez la maintenabilité pour des performances.

Ne confondez pas non plus le DIP avec les conteneurs DI (Dependency Injection). L'un n'implique pas l'autre.

Kasey Speakman
la source