Tôi đã viết mã được khoảng 8 năm, tuy nhiên tôi vẫn thấy tính kế thừa quá linh hoạt và đôi khi nó khiến bạn hoàn toàn bối rối với mã bạn đã viết. Một ví dụ đơn giản nhất sẽ là:
abstract class AClass {
protected void method1() {
if(check()) {
do1();
} else {
do2();
}
}
protected abstract void do1();
protected abstract void do2();
}
Mục đích của lớp là mọi người có thể triển khai do1 () và do2 () để có thể thực hiện một số logic hơn nữa, tuy nhiên đôi khi mọi người quyết định quá tải phương thức1 (), và sau đó mọi thứ trở nên phức tạp ngay lập tức.
Tôi chỉ tìm thấy trong mẫu chiến lược, mã được sử dụng lại thông qua kế thừa, trong hầu hết trường hợp, người thiết kế lớp cơ sở biết rất rõ các lớp con của nó và sự kế thừa đó là hoàn toàn tùy chọn.
Tôi có một lớp được kế thừa bởi 4 lớp - một IoHandler và đó là lớp con cho phía máy chủ, phía máy khách, máy chủ biên, máy chủ gốc và nó bắt đầu khiến tôi phát điên. Tôi luôn luôn trong việc tái cấu trúc mã, tôi luôn đưa ra những ý tưởng mà tôi nghĩ sẽ hiệu quả và sau đó được chứng minh là không. Người ta nói rằng bộ não con người chỉ có thể chứa 7 mẩu thông tin một lần, tôi có mang quá nhiều không?
final
[nếu bạn đang sử dụng java]. Điều này thực sự làm cho nó không ảo, và nó không thể bị quá tải. Hoàn hảo để sử dụng trong trường hợp này [mẫu]