कभी-कभी यथार्थवादी के लिए आदर्श छोड़ना उचित होता है। यदि यह किसी वास्तविक लाभ के साथ "इसे सही करने" के लिए एक बड़ी समस्या का कारण बनने जा रहा है, तो मैं इसे गलत कर दूंगा। इसके साथ में, मुझे अक्सर लगता है कि यह सही करने के लिए समय निकालने लायक है, क्योंकि अनावश्यक एकाधिक विरासत जटिलता को बढ़ाती है, और यह कर सकते हैं सिस्टम को कम रखरखाव करने में योगदान देता है। आपको वास्तव में यह तय करना होगा कि आपके परिस्थिति के लिए सबसे अच्छा क्या है।
एक विकल्प यह होगा कि इन ऑब्जेक्ट्स DamageCounter
से विरासत के बजाय क्षतिग्रस्त
इंटरफ़ेस को कार्यान्वित करें। इस तरह, एक व्यक्ति एक क्षति काउंटर है, लेकिन है क्षतिग्रस्त है। (मुझे अक्सर इंटरफेस संज्ञाओं से विशेषण के रूप में बहुत अधिक समझ में आता है।) फिर आप क्षतिग्रस्त
ऑब्जेक्ट्स पर एक सतत क्षति इंटरफ़ेस प्राप्त कर सकते हैं, और यह खुलासा नहीं करते कि क्षति काउंटर अंतर्निहित कार्यान्वयन है (जब तक आपको आवश्यकता न हो सेवा मेरे)।
यदि आप टेम्पलेट रूट (सी ++ या इसी तरह के मानते हुए) जाना चाहते हैं, तो आप इसे मिक्सिन के साथ कर सकते हैं, लेकिन खराब होने पर यह बदसूरत हो सकता है।