Par exemple:
Dire que j'ai des classes A
, B
, C
. J'ai deux interfaces, appelons-les IAnimal
et IDog
. IDog
hérite de IAnimal
. A
et B
sont IDog
s, tandis que C
ne l'est pas, mais c'est un IAnimal
.
La partie importante est qu'elle IDog
ne fournit aucune fonctionnalité supplémentaire. Il est uniquement utilisé pour autoriser A
et B
, mais pas C
, être passé en argument à certaines méthodes.
Est-ce une mauvaise pratique?
MyProject.Data.IAnimal
et MyProject.Data.Animal
sont meilleurs que MyProject.Data.Interfaces.Animal
et MyProject.Data.Implementations.Animal
Interface
ou Implementation
, que ce soit dans un préfixe répétitif ou dans un espace de noms, c'est une tautologie de toute façon et viole DRY. Dog
est tout ce dont vous devez vous soucier. PitBull extends Dog
n'a pas besoin de redondance d'implémentation non plus, le mot extends
me dit tout ce que j'ai besoin de savoir, lisez le lien que j'ai posté dans mon commentaire d'origine.
IAnimal
etIDog
sont de terribles noms de tautologie!