Jadi saya ingin mewarisi dari sealed class
dalam CSharp dan terbakar. Tidak ada cara untuk membuka segelnya kecuali Anda memiliki akses ke sumbernya.
Kemudian saya berpikir "mengapa sealed
ada?". 4 bulan lalu. Saya tidak bisa mengetahuinya, meskipun membaca banyak hal tentang itu, seperti:
- Harapan Jon Skeet " kelas disegel secara default di .NET. "
- Lebih suka komposisi daripada warisan?
- "Kamu seharusnya tidak menyegel semua kelas (...)"
- Bagaimana Anda mengejek kelas Tertutup?
Saya sudah mencoba mencerna semua itu sejak itu, tetapi itu terlalu banyak bagi saya. Akhirnya, kemarin saya mencobanya lagi. Saya telah memindai semuanya lagi, ditambah beberapa lainnya:
- Mengapa kelas harus selain "abstrak" atau "final / tertutup"?
- Dalam lebih dari 15 tahun pemrograman, pertama kali saya mendengar tentang SOLID , dari jawaban dari pertanyaan yang sudah ditautkan dan saya jelas tidak membacanya 4 bulan lalu
Akhirnya, setelah banyak merenungkan, saya memutuskan untuk berat mengedit pertanyaan asli berdasarkan judul baru.
Pertanyaan lama itu terlalu luas dan subyektif. Itu pada dasarnya bertanya:
- Dalam judul lama: Satu alasan bagus untuk menggunakan disegel
- Di dalam tubuh: Bagaimana cara memodifikasi kelas yang disegel dengan benar? Lupakan tentang warisan? Gunakan komposisi?
Tetapi sekarang, dengan memahami (yang saya tidak lakukan kemarin) bahwa semua yang sealed
dilakukan adalah mencegah warisan , dan kita dapat dan memang harus menggunakan komposisi daripada warisan , saya menyadari apa yang saya butuhkan adalah contoh - contoh praktis .
Saya kira pertanyaan saya di sini adalah (dan sebenarnya selalu) persis seperti yang disarankan Mr.Mindor dalam obrolan : Bagaimana mendesain pewarisan dapat menyebabkan biaya tambahan?