Tôi có một vài lớp Parent
và Child1
... được Child9
triển khai trong Java. Parent
là một lớp trừu tượng, chứa tất cả các biến chung của các lớp con (rất nhiều, đó là lý do chính tại sao tôi tạo Parent
một lớp trừu tượng chứ không phải giao diện), một số phương thức trừu tượng và một số phương thức được triển khai.
Một số lớp con có các phương thức tùy chỉnh dành riêng cho chúng. Vì vậy, tôi thường thấy mình gọi một phương thức con bằng cách sử dụng downcasting:
Parent p = new Child1();
((Child1) p).child1SpecificMethod();
Bằng cách nào đó tôi có cảm giác rằng đây là một thực tế tồi tệ, nhưng tôi không chắc đó có phải là trường hợp tương ứng làm thế nào để cải thiện thiết kế hay không.
- Chỉnh sửa - Dù sao thì điều tôi có thể nên thay đổi là việc tôi sử dụng lớp Parent để tổ chức nhiều biến chung (hiện tại), biến chúng (hoặc một đối tượng chứa) thành viên của các lớp cụ thể.
p
là một Parent
ở nơi đầu tiên? Bám sát các loại chung là cách thực hành tốt cho API và các loại trả về, nhưng không nằm trong cùng phạm vi mà bạn tự phân bổ một lớp cụ thể.