Question

Nous avons beaucoup d'objets avec ce genre de conception: Interface et plusieurs mises en œuvre, et l'utilisation de plusieurs objets par la composition. exemple: Foo implémente IFoo et un objet qui implémente Bar IBar Foo possède également un procédé setBar (bar IBar) pour l'injection de dependancie.

Ma question est: le poseur sould't soit dans l'interface? (Pour les tests, railleur ... je suis bloqué!)

Était-ce utile?

La solution

Si vous utilisez polymorphisme, à savoir appeler le poseur sur le type d'interface, vous devez évidemment dans l'interface.

Autres conseils

Pour avoir un setter dans l'interface juste pour moqueries et les tests ne sont pas bonnes. Vous permettez ainsi aux utilisateurs de cette interface aux composants ensemble arbitraire, même si les propriétés de cet objet ne devrait probablement pas être modifiable après la construction. L'interface ne doit pas révéler comment construire objet.

Soit injecter Bar à Foo par injection setter. Dans un contexte où Foo ne peut exister sans barre, il serait plus approprié d'injecter Bar avec un constructeur.

Lire plus: Types d'injection de dépendance

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top