Par exemple:
Dire que j'ai des classes A, B, C. J'ai deux interfaces, appelons-les IAnimalet IDog. IDoghérite de IAnimal. Aet Bsont IDogs, tandis que Cne l'est pas, mais c'est un IAnimal.
La partie importante est qu'elle IDogne fournit aucune fonctionnalité supplémentaire. Il est uniquement utilisé pour autoriser Aet B, mais pas C, être passé en argument à certaines méthodes.
Est-ce une mauvaise pratique?
MyProject.Data.IAnimalet MyProject.Data.Animalsont meilleurs que MyProject.Data.Interfaces.Animalet MyProject.Data.Implementations.Animal
Interfaceou 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. Dogest tout ce dont vous devez vous soucier. PitBull extends Dogn'a pas besoin de redondance d'implémentation non plus, le mot extendsme dit tout ce que j'ai besoin de savoir, lisez le lien que j'ai posté dans mon commentaire d'origine.
IAnimaletIDogsont de terribles noms de tautologie!