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 IAnimal
và IDog
. IDog
kế thừa từ IAnimal
. A
và B
là IDog
s, trong khi C
không, nhưng nó là một IAnimal
.
Phần quan trọng là IDog
cung cấp không có chức năng bổ sung. Nó chỉ được sử dụng để cho phép A
và 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.IAnimal
và MyProject.Data.Animal
tốt hơn MyProject.Data.Interfaces.Animal
và MyProject.Data.Implementations.Animal
Interface
hoặ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. Dog
là tất cả những gì bạn nên quan tâm. PitBull extends Dog
cũng không cần dự phòng triển khai, từ này extends
cho 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.
IAnimal
vàIDog
là tên tautology khủng khiếp!