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