मैं एक पुनः उपयोग करने योग्य क्लास लाइब्रेरी तैयार कर रहा हूं जिसमें 2 असेंबली (दूसरों के बीच) कोर.xml.dll और core.string.dll नामक हैं।सर्कुलर निर्भरता बनाम डीआरवाई
एक्सएमएल असेंबली कुछ स्ट्रिंग सहायक विधियों का उपयोग करने के लिए स्ट्रिंग असेंबली का संदर्भ देता है।
हालांकि अब एक स्ट्रिंग विधि है जो xml असेंबली में निहित विधि का उपयोग करने से लाभान्वित होगी।
यदि मैं स्ट्रिंग असेंबली से एक्सएमएल असेंबली का संदर्भ देता हूं तो मैंने एक परिपत्र निर्भरता बनाई होगी और स्रोत कोड से दोनों असेंबली बनाने में असमर्थ रहेगा। (यानी चिकन और अंडे की समस्या)।
"स्वयं को दोहराएं" सिद्धांत का पालन करने के लिए मैं दोनों विधानसभाओं में कार्यक्षमता को डुप्लिकेट करने से बचाना चाहता हूं। अगर मुझे कार्यान्वयन में एक बग मिलती है तो मैं इसे केवल एक ही स्थान पर ठीक करना चाहता हूं।
जबकि मैं असेंबली को एक में विलय कर सकता हूं, यह आदर्श नहीं है क्योंकि यह असेंबली की समेकन को कम करता है।
मुझे एक विशिष्ट वर्ग में केवल एक छोटे से बदलाव के लिए पूरी असेंबली को फिर से बनाने और फिर से तैनात करने की आवश्यकता होगी। इसके अलावा, अंततः, कई निर्भरताओं के साथ मैं शायद एक विशाल पुस्तकालय असेंबली के साथ समाप्त हो जाएगा।
तो लाइब्रेरी असेंबली के पुनः उपयोग करने योग्य सेट के संदर्भ में यहां उपयोग करने का सबसे अच्छा तरीका क्या है? साथ ही, .NET ढांचा स्वयं इस मुद्दे से कैसे निपटता है?
(परावर्तक में यह प्रतीत होता है System.Configuration.dll संदर्भ System.XML.DLL और इसके विपरीत। क्या यह वास्तव में सही है, तो कैसे प्रबंधित सर्कुलर निर्भरता रहा है?) की तरह आप किसी तृतीय जरूरत
क्या आप एक ठोस उदाहरण दे सकते हैं कि "... स्ट्रिंग विधि जो xml असेंबली में निहित विधि का उपयोग करने से लाभान्वित होगी।" –
मैं एक रूपांतरण विधि देख रहा था जो एक्सएमएल स्वीकार करता है और स्ट्रिंग आधारित प्रारूप में परिवर्तित हो जाता है। हाँ, मैं सोच रहा हूं कि यह विशेष रूप से किसी अन्य तरीके से संभाला जा सकता है, हालांकि मुझे अभी भी अधिक सामान्य प्रश्न में दिलचस्पी है। – Ash
देखो जॉन लेकोस की पुस्तक, "बड़े पैमाने पर सी ++ सॉफ्टवेयर डिजाइन"। उस सामग्री में से बहुत सी सी # के लिए लागू नहीं हो सकती है, लेकिन वह स्तरित आर्किटेक्चर के बारे में गहराई से जाता है, जो वास्तव में आपका प्रश्न हो रहा है। – Tom