web-dev-qa-db-fra.com

Architecture propre: le contrôleur crée une instance requestmodel ou implémente requestmodel?

J'ai vérifié de nombreux articles et discussions sur le Web.

Nous avons donc le diagramme principal:

Uncle Bob's Clean Architecture Diagram

Nous avons donc le contrôleur pointant directement sur demandeModel.

Si directement au point, dois-je:

  1. Créer une classe requestmodel sur "Livraison" (est la manière dont l'oncle Bob appelle cette couche) Couche qui implémente une interface requestmodel, crée l'instance de la classe de béton requestmodel dans le contrôleur et "le jeter dans le flux"
  2. Créez une classe DemandeModel sur la couche de casse d'utilisation, créez l'instance de la classe requestmodel dans le contrôleur et "le jeter dans le flux" "

De ma compréhension initiale, l'option 2 viole certains SOLID Principes, correct?

1
Christian H

Contrôleur crée une instance de requestmodel ou implémente demandeModel?

Lisons un peu du livre oncle Bobs:

Les pointes de flèche ouvertes utilisent des relations. Les flèches fermées sont des outils d'outils ou de héritage

Architecture propre de Robert Martin - Page 84

Il n'y a pas de tête de flèche fermée entre contrôleur et requestmodel, donc aucune relation de mise en œuvre. Il y a une tête de flèche ouverte. Donc, un contrôleur peut utiliser une requêteModel.

Est-ce que cela signifie contrôleur crée une requêteModel? Eh bien ça peut. Ou vous pouvez l'injecter. Le diagramme ne vous dit tout simplement pas qui. Mais bien, il n'y a pas de mise en œuvre entre eux. Ne finissez pas avec ce diagramme.

2
candied_orange