ดังนั้นฉันต้องการสืบทอดจากsealed class
ในcsharpและถูกไฟไหม้ ไม่มีทางที่จะเปิดผนึกจนกว่าคุณจะเข้าถึงแหล่งข้อมูลได้
ฉันคิดว่า "ทำไมsealed
ถึงมีอยู่จริง" 4 เดือนที่แล้ว ฉันไม่สามารถเข้าใจได้แม้จะอ่านสิ่งต่าง ๆ มากมายเช่น:
- ความปรารถนาของ Jon Skeet " คลาสถูกปิดผนึกโดยค่าเริ่มต้นใน. NET "
- ชอบการแต่งมากกว่าการสืบทอด?
- "คุณไม่ควรปิดคลาสทั้งหมด (... )"
- คุณจะล้อเลียนคลาสที่ปิดสนิทได้อย่างไร
ฉันพยายามย่อยทุกอย่างตั้งแต่นั้นมา แต่มันก็มากเกินไปสำหรับฉัน ในที่สุดเมื่อวานฉันลองอีกครั้ง ฉันสแกนพวกเขาทั้งหมดอีกครั้งและอีกไม่กี่:
- ทำไมชั้นเรียนควรเป็นอย่างอื่นนอกจาก "นามธรรม" หรือ "ขั้นสุดท้าย / ปิดผนึก"
- ในการเขียนโปรแกรมกว่า 15 ปีครั้งแรกที่ฉันได้ยินเกี่ยวกับSOLIDจากคำตอบของคำถามที่เชื่อมโยงแล้วและเห็นได้ชัดว่าฉันไม่ได้อ่านมาตลอด 4 เดือนที่ผ่านมา
ในที่สุดหลังจากการไตร่ตรองมากมายฉันตัดสินใจที่จะแก้ไขคำถามเดิมอย่างหนักตามชื่อเรื่องใหม่
คำถามเดิมกว้างเกินไปและอัตนัย มันเป็นพื้นถาม:
- ในชื่อเก่า: เหตุผลหนึ่งที่ดีในการใช้ตราประทับ
- ในร่างกาย: วิธีการปรับเปลี่ยนคลาสที่ปิดผนึกอย่างถูกต้อง? ลืมเกี่ยวกับมรดก ใช้องค์ประกอบ?
แต่ตอนนี้ความเข้าใจ (ซึ่งฉันไม่ได้เมื่อวานนี้) ที่ทุกคนsealed
ไม่สามารถป้องกันการสืบทอดและเราสามารถและควรใช้องค์ประกอบมากกว่าการสืบทอดฉันรู้ว่าสิ่งที่ฉันต้องการคือตัวอย่างที่ใช้งานได้จริง
ฉันเดาว่าคำถามของฉันที่นี่คือ (และอันที่จริงแล้วเป็นไปอย่างแน่นอน) อย่างที่Mr.Mindor แนะนำฉันในการแชท : การออกแบบเพื่อการสืบทอดสามารถทำให้มีค่าใช้จ่ายเพิ่มเติมได้อย่างไร