Na przykład:
Że mam zajęcia A, B, C. Mam dwa interfejsy, nazwijmy je IAnimali IDog. IDogdziedziczy po IAnimal. Ai Bsą IDog, chociaż Cnie jest, ale jest IAnimal.
Ważną częścią jest to, że IDognie zapewnia żadnej dodatkowej funkcjonalności. Służy wyłącznie do zezwalania Ai przekazywania B, ale nie Cdo przekazania, jako argumentu dla niektórych metod.
Czy to zła praktyka?
MyProject.Data.IAnimali MyProject.Data.Animalsą lepsze niż MyProject.Data.Interfaces.Animali MyProject.Data.Implementations.Animal
Interfacealbo Implementation, czy w powtarzalnym prefiksie, czy też w przestrzeni nazw, jest to tautologia w obu kierunkach i narusza DRY. Dogto wszystko, o co powinieneś dbać. PitBull extends Dognie potrzebuje też redundancji implementacji, słowo extendsmówi mi wszystko, co muszę wiedzieć, przeczytaj link, który zamieściłem w moim oryginalnym komentarzu.
IAnimaliIDogsą okropnymi nazwami tautologicznymi!