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