तंग युग्मन इसका मतलब है कि वर्ग और वस्तुएं एक दूसरे पर निर्भर हैं। सामान्य तौर पर, तंग युग्मन आमतौर पर अच्छा नहीं होता है क्योंकि यह ढीले युग्मन के दौरान कोड के लचीलेपन और पुन:प्रयोज्य को कम करता है। इसका मतलब उस वर्ग की निर्भरता को कम करना है जो सीधे अलग वर्ग का उपयोग करता है।
तंग युग्मन
- कड़ी युग्मित वस्तु एक ऐसी वस्तु है जिसे अन्य वस्तुओं के बारे में जानने की आवश्यकता होती है और आमतौर पर एक दूसरे के इंटरफेस पर अत्यधिक निर्भर होती है।
- एक ऑब्जेक्ट को कसने वाले युग्मित एप्लिकेशन में बदलना अक्सर कई अन्य वस्तुओं में परिवर्तन की आवश्यकता होती है।
- छोटे अनुप्रयोगों में, हम आसानी से परिवर्तनों की पहचान कर सकते हैं और कुछ भी छूटने की संभावना कम होती है। लेकिन बड़े अनुप्रयोगों में, इन अंतर-निर्भरता को हर प्रोग्रामर हमेशा नहीं जानता है और परिवर्तनों को अनदेखा करने का एक मौका है।
उदाहरण
class A { public int a = 0; public int getA() { System.out.println("getA() method"); return a; } public void setA(int aa) { if(!(aa > 10)) a = aa; } } public class B { public static void main(String[] args) { A aObject = new A(); aObject.a = 100; // Not suppose to happen as defined by class A, this causes tight coupling. System.out.println("aObject.a value is: " + aObject.a); } }
उपरोक्त उदाहरण में, इस तरह के कार्यान्वयन द्वारा परिभाषित कोड तंग युग्मन का उपयोग करता है और बहुत खराब है क्योंकि कक्षा बी कक्षा ए के विवरण के बारे में जानता है, यदि कक्षा ए चर 'ए' को निजी में बदल देती है तो कक्षा बी भी टूट जाती है। कक्षा ए के कार्यान्वयन में कहा गया है कि चर 'ए' 10 से अधिक नहीं होना चाहिए, लेकिन जैसा कि हम देख सकते हैं कि इस तरह के नियम को लागू करने का कोई तरीका नहीं है क्योंकि हम सीधे चर पर जा सकते हैं और हम जो भी मूल्य तय करते हैं उसकी स्थिति बदल सकते हैं।
आउटपुट
aObject.a value is: 100
ढीला युग्मन
- ढीला कपलिंग सिस्टम के घटकों के बीच अंतर-निर्भरता को कम करने के लिए एक डिज़ाइन लक्ष्य है जो जोखिम को कम करने के लक्ष्य के साथ है कि एक घटक में परिवर्तन के लिए किसी अन्य घटक में परिवर्तन की आवश्यकता होगी।
- ढीला कपलिंग सिस्टम के लचीलेपन को बढ़ाने, इसे और अधिक बनाए रखने योग्य बनाने और पूरे ढांचे को अधिक स्थिर बनाने के उद्देश्य से एक बहुत अधिक सामान्य अवधारणा है।
उदाहरण
class A { private int a = 0; public int getA() { System.out.println("getA() method"); return a; } public void setA(int aa) { if(!(aa > 10)) a = aa; } } public class B { public static void main(String[] args) { A aObject = new A(); aObject.setA(100); // No way to set 'a' to such value as this method call will // fail due to its enforced rule. System.out.println("aObject value is: " + aObject.getA()); } }
उपरोक्त उदाहरण में, इस तरह के कार्यान्वयन द्वारा परिभाषित कोड ढीले युग्मन का उपयोग करता है और इसकी अनुशंसा की जाती है क्योंकि कक्षा बी को अपने राज्य को प्राप्त करने के लिए कक्षा ए से गुजरना पड़ता है जहां नियम लागू होते हैं। यदि कक्षा A को आंतरिक रूप से बदल दिया जाता है, तो कक्षा B नहीं टूटेगी क्योंकि यह संचार के तरीके के रूप में केवल कक्षा A का उपयोग करती है।
आउटपुट
getA() method aObject value is: 0