Saya telah mengkode selama sekitar 8 tahun, namun saya masih menemukan warisan terlalu fleksibel dan kadang-kadang membuat Anda benar-benar bingung dengan kode yang Anda tulis. Salah satu contoh paling sederhana adalah:
abstract class AClass {
protected void method1() {
if(check()) {
do1();
} else {
do2();
}
}
protected abstract void do1();
protected abstract void do2();
}
Tujuan kelas adalah agar orang dapat mengimplementasikan do1 () dan do2 () sehingga beberapa logika lebih lanjut dapat dilakukan, namun terkadang orang memutuskan untuk membebani method1 (), dan kemudian semuanya menjadi rumit dengan segera.
Saya hanya menemukan dalam pola strategi, kode digunakan kembali dengan baik melalui warisan, dalam banyak kasus perancang kelas dasar tahu subkelasnya dengan sangat baik, dan bahwa warisan sepenuhnya opsional.
Saya memiliki kelas yang diwarisi oleh 4 kelas - sebuah IoHandler, dan subclass untuk sisi server, sisi klien, server tepi, server asal, dan mulai membuat saya gila. Saya selalu dalam kode refactoring, saya selalu keluar dengan ide-ide yang saya pikir akan berhasil dan kemudian terbukti tidak. Dikatakan bahwa otak manusia hanya dapat menyimpan 7 buah informasi satu kali, apakah saya membawa terlalu banyak?
final
[jika Anda menggunakan java]. Ini secara efektif membuatnya non-virtual, dan tidak dapat kelebihan beban. Sempurna untuk digunakan dalam keadaan ini [pola templat]