Наприклад:
Скажімо , у мене є класи A, B, C. У мене два інтерфейси, давайте можемо їх називати IAnimalі IDog. IDogуспадковує від IAnimal. Aі Bє IDogs, хоча Cце не так, але це IAnimal.
Важлива частина полягає в тому, що вона IDogне забезпечує додаткової функціональності. Він використовується лише для того, щоб дозволити Aі B, але ні C, бути переданим як аргумент певним методам.
Це погана практика?
MyProject.Data.IAnimalі MyProject.Data.Animalкращі за MyProject.Data.Interfaces.Animalта MyProject.Data.Implementations.Animal
Interfaceабо Implementation, чи є в повторюваному префіксі чи просторі імен, це тавтологія в будь-якому випадку і порушує DRY. Dogце все, про що ти повинен дбати. PitBull extends Dogтакож не потрібно надмірності впровадження, слово extendsпідказує мені все, що мені потрібно знати, прочитайте посилання, яке я розмістив у своєму первісному коментарі.
IAnimalіIDogє страшними іменами тавтології!