Наприклад:
Скажімо , у мене є класи A
, B
, C
. У мене два інтерфейси, давайте можемо їх називати IAnimal
і IDog
. IDog
успадковує від IAnimal
. A
і B
є IDog
s, хоча 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
є страшними іменами тавтології!