Clean Archiecture VS Layered
Architecture Layered + Dependency Inversion Principle = Clean Architecture
La Clean Architecture est composée de plusieurs couches sur lesquelles on pousse à l’extrême l’inversion de dépendance.
Construction
1. Architecture Layered
Nous repartons de l’architecture Layered présentées. Elle permet d’avoir des couches logiques isolés.
2. Architecture Layered à l’extrême
Maintenant si on pousse le concept d’inversion de dépendances à l’extrême, on obtient l’architecture suivante :
- Le module de haut niveau Business est indépendant du module de bas niveau (couplage faible)
- Le module de bas niveau Persistance peut être utilisé dans plusieurs contextes
- Le module de haut niveau communique donc avec le module de bas niveau via un Adapatateur
Nous obtenons notre Clean Architecture. On notera l’utilisateur du patron Adaptateur au lieu de patron Gateway mais le principe est exactement le même.
Pourquoi l’invention de la Clean Architecture
Alors me diriez-vous pourquoi donne-t-on un nom à quelque chose de si évident
Appliquer une architecture layered dans avoir une inversion de dépendance n’a pas vraiment de sens ?
Vous avez totalement raison, mais de nombreuses personnes n’arrive pas à aller au delà de l’architecture Layered. En proposant ce nouveau nom Uncle Bob a mis en lumière l’importance de l’inversion de dépendances.