युग्मन, सरलीकृत
जब कोई वस्तु किसी अन्य वस्तु की विधि, गुण आदि को कहती है, तो हम कहते हैं कि वस्तुएं युग्मित हैं। हम इसे युग्मन कहते हैं क्योंकि अब कैली अपने स्वयं के तरीके / प्रस्ताव के बारे में कुछ भी नहीं बदल सकता है । w.out कॉलर को तोड़ना ।
इस प्रकार, अधिक युग्मन - तरीके, सहारा। - कठिन है कि सभी कोड को तोड़ने के बिना कैली कोड को बदलना है जो इसका उपयोग करता है।
युग्मन पर विचार करना
- यहां तक कि एक ही प्रस्ताव को संदर्भित करते हुए। विधि दो वस्तुओं को जोड़े।
- सॉफ्टवेयर बनाने के लिए स्पष्ट रूप से युग्मन आवश्यक है।
- युग्मन की 'लॉक स्टेप' प्रकृति को देखते हुए हम इसे सीमित और अलग करना चाहते हैं। यह लक्ष्य बस सामान्य सॉफ्टवेयर देव के साथ जाता है। सिद्धांतों।
- कम वस्तुओं से हमें बात करनी होगी, कपलिंग कम।
- अगर मुझे कहने की ज़रूरत है, तो 20 अलग-अलग विधि कॉलिंग युग्मन कम है यदि सभी 20 कॉल एक वर्ग / वस्तु के हैं, तो वही विधियाँ कई वर्गों / वस्तुओं में फैली हुई हैं।
अधिकांश ज्ञान पागल युग्मन का कारण बनता है
यहाँ हम एक है Employee
है कि एक Person
एक 'पता' है
public class Employee {
public Person me = new Person();
}
public class Person {
public Address home = new Address();
}
public class Address {
public string street;
}
सड़क प्राप्त करने के लिए मैं कॉल करना होगा: myEmployee.me.home.street
। यह कम से कम ज्ञान के सिद्धांत के विपरीत 180 डिग्री है। मैं करने के लिए है पता है internals, समग्र संरचना, के बारे में Employee
, Person
है, और Address
वर्गों।
यह दोषपूर्ण वर्ग डिजाइन मुझे उन सभी वर्गों के बारे में जानने के लिए मजबूर करता है और इस प्रकार myEmployee.me.home.street
मुझे (कॉलर ऑब्जेक्ट) 3 वर्गों से कम नहीं - केवल एक संपत्ति प्राप्त करने के लिए!
कम से कम ज्ञान दिन बचाता है
यदि मैं केवल Employee
कक्षा से बात करता हूं तो मैं प्रति से कम से कम ज्ञान सिद्धांत को लागू कर रहा हूं, और ऐसा करके हम स्वचालित रूप से केवल उस वर्ग के लिए युग्मन को सीमित करते हैं , और साथ ही साथ उस एक वर्ग को युग्मन को अलग करते हैं ।
Employee
वर्ग में सभी आवश्यक गुणों को जोड़कर हम युग्मन को ठीक करते हैं।
इस प्रकार
public class Employee {
public Person me = new Person();
public string street { return me.home.street; }
}
मुझे कॉल करने की अनुमति देता है: myEmployee.street
-
- मैं केवल "जानता हूं"
Employee
- मैं केवल युग्मित हूं
Employee
- चाहे इसकी संरचना कितनी भी जटिल क्यों न हो।
कम से कम सभी तरह के ज्ञान
हम से myEmployee decoupled Person
और Address
और आदर्श रूप में हम जोड़कर कम से कम ज्ञान को लागू जारी रखना चाहिए के माध्यम से पारित करने के गुण ऐसा है कि Employee
करने के लिए केवल वार्ता Person
और Person
केवल करने के लिए वार्ताAddress