इसलिए मैं csharpsealed class
में एक से वारिस करना चाहता था और जल गया। जब तक आपके पास स्रोत तक पहुंच न हो, तब तक इसे हटाने का कोई तरीका नहीं है।
फिर यह सोचकर मुझे "क्यों sealed
मौजूद है?"। 4 महीने पहले। मैं इसके बारे में कई बातें पढ़ने के बावजूद इसका पता नहीं लगा सका, जैसे:
- जॉन स्कीट की इच्छा " वर्गों को डिफ़ॉल्ट रूप से .NET में सील कर दिया गया था। "
- वंशानुक्रम पर रचना को प्राथमिकता दें?
- "आपको सभी वर्गों (...) को सील नहीं करना चाहिए"
- आप एक सील वर्ग का मज़ाक कैसे उड़ाते हैं?
मैंने तब से सभी को पचाने की कोशिश की है, लेकिन यह मेरे लिए बहुत ज्यादा है। आखिरकार, कल मैंने इसे फिर से आजमाया। मैंने उन सभी को फिर से स्कैन किया है, साथ ही कुछ और भी:
- एक वर्ग को "अमूर्त" या "अंतिम / सील" के अलावा और कुछ क्यों होना चाहिए?
- 15 साल से अधिक की प्रोग्रामिंग में, मैंने पहली बार SOLID के बारे में सुना है , पहले से ही जुड़े एक प्रश्न के उत्तर से और मैंने स्पष्ट रूप से इसे 4 महीने पहले नहीं पढ़ा था।
अंत में, विचार के बहुत सारे के बाद, मैं करने का फैसला किया भारी नए शीर्षक के आधार पर मूल प्रश्न को संपादित करें।
पुराने सवाल काफ़ी व्यापक है और व्यक्तिपरक थे। यह मूल रूप से पूछ रहा था:
- पुराने शीर्षक में: सील का उपयोग करने का एक अच्छा कारण
- शरीर में: सील किए गए वर्ग को ठीक से कैसे संशोधित किया जाए? विरासत के बारे में भूल जाओ? रचना का उपयोग करें?
लेकिन अब, यह समझना (जो मैंने कल नहीं किया था) कि यह सब sealed
विरासत को रोक रहा है , और हमें वास्तव में विरासत पर रचना का उपयोग करना चाहिए , मुझे एहसास हुआ कि मुझे जो चाहिए वह व्यावहारिक उदाहरण था ।
मुझे लगता है कि मेरा सवाल यहाँ है (और वास्तव में हमेशा रहा है) श्री मिन्दोर ने मुझे एक चैट में सुझाव दिया था : वंशानुक्रम के लिए डिज़ाइन करना अतिरिक्त लागत का कारण कैसे हो सकता है?