Tôi đang triển khai một tập hợp các lớp và giao diện tương ứng nơi tôi muốn mỗi lớp có một tập hợp các thuộc tính chung và một tập hợp các thuộc tính chuyên biệt chỉ dành riêng cho lớp đó. Vì vậy, tôi đang xem xét việc xác định giao diện dọc theo các dòng:Thừa kế nhiều giao diện
interface ICommon {...} // Members common to all widgets
interface IWidget1 {...} // specialized members of widget type 1
interface IWidget2 {...} // specialized members of widget type 2
Tôi đang cố gắng chọn giữa việc thừa kế trong giao diện hoặc trong lớp. Vì vậy, đặc biệt, tôi có thể làm điều đó như thế này:
interface IWidget1 : ICommon {...}
interface IWidget2 : ICommon {...}
class Widget1 : IWidget1 {...}
class Widget2 : IWidget2 {...}
... hay như thế này ...
class Widget1: ICommon, IWidget1 {...}
class Widget2: ICommon, IWidget2 {...}
Có bất kỳ lý do thuyết phục để đi cách này hay cách khác?
Cập nhật: Điều đó có ảnh hưởng đến câu trả lời nếu các lớp phải được hiển thị COM không?
Đúng vậy. Tất cả các loại Widget phải thực hiện ICommon. Đó là lý do cho nó, để thực thi việc thực hiện nó trong mỗi và mọi widget. –
Sau đó, yeah bạn chắc chắn nên có IWidget1 lấy được từ ICommon. – Josh