Ví dụ:
Nói rằng tôi có các lớp học A, B, C. Tôi có hai giao diện, hãy gọi chúng IAnimalvà IDog. IDogkế thừa từ IAnimal. Avà Blà IDogs, trong khi Ckhông, nhưng nó là một IAnimal.
Phần quan trọng là IDogcung cấp không có chức năng bổ sung. Nó chỉ được sử dụng để cho phép Avà B, nhưng không C, được truyền dưới dạng đối số cho các phương thức nhất định.
Đây có phải là thực hành xấu?
MyProject.Data.IAnimalvà MyProject.Data.Animaltốt hơn MyProject.Data.Interfaces.Animalvà MyProject.Data.Implementations.Animal
Interfacehoặc Implementation, dù là trong một tiền tố lặp đi lặp lại hoặc một không gian tên, thì đó cũng là một tautology và vi phạm DRY. Doglà tất cả những gì bạn nên quan tâm. PitBull extends Dogcũng không cần dự phòng triển khai, từ này extendscho tôi biết tất cả những gì tôi cần biết, hãy đọc liên kết tôi đã đăng trong nhận xét ban đầu của mình.
IAnimalvàIDoglà tên tautology khủng khiếp!