Tôi có một nhóm các lớp mở rộng một lớp trừu tượng duy nhất. Một tập hợp con của các lớp này cần một sự implelmentation giống hệt nhau của một trong các phương thức, một tập hợp con khác của các lớp cần thực hiện một phương thức khác, và một tập con thứ ba yêu cầu một phương thức khác. Trong tất cả có khoảng mười lớp con, nhưng chỉ có ba triển khai có thể có của một trong các phương pháp. (Có nhiều phương pháp khác mà các lớp thực hiện không có điểm gì chung.)Cách thực hiện điều này mà không cần thừa kế nhiều
Tôi đang cố gắng tìm ra cách tốt nhất để thực hiện việc này. Tôi nghĩ rằng những gì tôi đã làm trong C++ là thừa kế nhiều: tạo ra các lớp bae chỉ thực hiện phương thức này, sau đó để cho các em kế thừa từ một trong ba lớp đó.
Có cách nào tốt nhất để thực hiện điều này trong Java không?
Tôi đang xem xét một lớp can thiệp gồm ba lớp trừu tượng, giữa lớp trừu tượng chính và trẻ em. Mỗi một trong ba kế thừa từ lớp trừu tượng chính và triển khai phương thức được đề cập. Sau đó, trẻ em được thừa hưởng từ bae này. Nhưng những gì tôi không thích về điều đó là gì nếu một phương pháp khác đi kèm với một hành vi "nhóm" tương tự, và nó không tương ứng với ba lớp "tầng trung lưu"? Điều đó sẽ trở nên xấu xí
Có bất kỳ điều này có ý nghĩa gì không? Tôi đang viết vội vàng ...
EDIT: Vì vậy, 24 giờ sau khi đặt câu hỏi của tôi, tôi đã nhận được khoảng một nửa mẫu để điều tra. Tôi chưa chắc chắn rằng họ là tất cả các mẫu thiết kế chính thức. Nhưng tôi sẽ xem xét và sau đó báo cáo lại (và chọn câu trả lời đúng). Các pattens gợi ý cho đến nay:
* Delegation
* Bridge
* Strategy
* Composition
* Decorator (if I was choosing on name alone, I choose this one)
Tôi cũng cần phải nói thêm rằng các phương pháp đang được thực hiện nhu cầu truy cập vào gần như tất cả các thành viên private của lớp. Vì vậy, đó sẽ là yếu tố lớn trong sự lựa chọn của tôi.
Cảm ơn bạn đã liên kết tôi sẽ đọc và quay lại với câu hỏi của mình. Bạn vẫn sẽ lắng nghe? Tôi là người mới ở đây. Các nhận xét được đăng lên câu trả lời có gây ra một số loại cảnh báo được gửi tới người trả lời không? –
Nhận xét để trả lời kích hoạt một thông báo nhỏ, nhưng nếu bạn có câu hỏi tiếp theo, tinh thần của trang web sẽ được đăng lên trang web mới hơn (trong khi kiểm tra bản sao) thay vì yêu cầu câu trả lời tiếp theo. Meta-thảo luận như thế này có [sub-site riêng của nó] (http://meta.stackoverflow.com/) và được cau mày khi ở đây. – Barend