2009-04-09 16 views
2

En décembre, il y avait this post qui a été répondu par "il est correct d'utiliser concret types [for simple object]". Mais je continue de voir de plus en plus d'entités simples avec des interfaces dans des exemples de projets, et même la très grande application Enterprise que je viens de prendre en charge (en comptant 89 interfaces et en cours).DDD: Quelles sont les bonnes raisons pour vous de coupler les Entités?

Est-ce que les gens ne choisissent pas la meilleure approche, et juste shotgunning le projet avec le "mon projet est faiblement couplé!" approche?

Ou, il me manque quelque chose. Je peux faire des tests unitaires avec des types de concrets pour mes implémentations IService, IFactory et IRepository que j'ai (et qui fonctionne plutôt bien). Je construis également ma première couche anti-corruption pour avoir extrait un grand nombre de ces outils tiers du domaine principal. Cette couche anti-corruption a un certain nombre de façades, de traducteurs et d'adaptateurs - qui sont tous faiblement couplés (ou prévus pour être).

Alors, y a-t-il quelque chose qui me manque sur les Entités ayant des Interfaces? Edit: Je devrais également mentionner que l'application d'entreprise que j'ai qui a toutes ces interfaces, a zéro tests unitaires. lol

Répondre

3

Il est plus important que les entités responsables se conforment à une interface que pour les objets de données simples. Si vous pouvez définir l'entité en termes de méthodes, alors, oui, vous bénéficierez d'une interface. Je ne peux pas voir qu'un objet qui sera simplement utilisé comme un DTO dans l'application gagne un grand avantage en ayant une interface. Cela dit, il y a certainement avantage à abstraire des «entités» créées par un outil tiers, ou un cadre comme L2S, selon moi.