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