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