यह देखते हुए कि एपीआई / सार्वजनिक विधि हस्ताक्षर में परिवर्तन उन क्लाइंट कोड को तोड़ने से रोकने के लिए कम से कम होना चाहिए जो इन विधियों का उपयोग करते हैं, मैं सोच रहा था कि क्या डेमेटर ऑफ लॉ इन पर कम लागू होता है।
एक सरल उदाहरण:
class Account() {
double balance;
public void debit(Transaction t) {
balance -= t.getAmount();
}
}
ध्यान दें कि डेबिट मेथड सिर्फ डबल अमाउंट ('लॉ ऑफ डेमेटर' के बजाय ट्रांजेक्शन ऑब्जेक्ट को पास करता है, जैसा कि मैं समझता हूं, यह आवश्यक जानकारी को पास करने के लिए कहेंगे, इस मामले में सिर्फ राशि है, ट्रांजेक्शन ऑब्जेक्ट नहीं ... )। इसके पीछे का कारण यह है कि भविष्य में विधि को राशि से अलग कुछ अन्य लेन-देन गुणों की आवश्यकता हो सकती है। जो मैं समझता हूं, यह भविष्य में एक नया पैरामीटर जोड़कर विधि हस्ताक्षर को तोड़ने से बचाएगा।
क्या यह इसे एक समझदार विकल्प बनाता है? या क्या मैं कुछ न कुछ भूल रहा हूं?