2015-05-12 9 views
5

यह एक डिज़ाइन प्रश्न है।बेस क्लास

वर्तमान में मेरे पास कई कक्षाएं हैं (विभिन्न परियोजनाओं में) जिनमें अलग-अलग भूमिकाएं हैं लेकिन एक आम तरीका है जो एक ही कर्तव्य करता है। मैं सभी सिद्धांत वर्गों के लिए बेस क्लास रखने के बारे में सोच रहा था, इसलिए उनमें से प्रत्येक इस वर्ग का उत्तराधिकारी हो सकता है और नकल बचाने के लिए इस विधि को लागू कर सकता है।

मेरा प्रश्न है कि मेरे पास कई परियोजनाओं में सभी कक्षाओं के लिए एक बेस क्लास होनी चाहिए, या मेरे पास प्रति परियोजना एक बेस क्लास होनी चाहिए?

धन्यवाद,

+0

इस तरह के मामलों में यह अत्यधिक प्रासंगिक है जिसका उपयोग आप करते हैं। कृपया हमें जानकारी प्रदान करें :) – laurisvr

+0

यदि आधार वर्ग समान होंगे, तो आपको निश्चित रूप से प्रत्येक प्रोजेक्ट में कोड डुप्लिकेट नहीं करना चाहिए। – CoryKramer

+0

@laurisvr VS2013 – CodersSC

उत्तर

3

मैं एक अंतरफलक है, जो कि एक साझा विधि को परिभाषित करेगा। फिर मैं उस इंटरफेस को अपनी परियोजना में रखूंगा। फिर आप ठोस कार्यान्वयन संदर्भ हैं जो परियोजना को इंटरफेस और कार्यान्वित करते हैं।

कुछ इस तरह ..

  • Repositories.proj
    • IRepository
  • EntityFrameworkImpl.proj
    • भंडार: IRepository
  • NHibern ateImpl.proj
    • भंडार: IRepository
+0

में कोड को वास्तव में डुप्लिकेट नहीं करना चाहिए हाँ यह संरचना वह संरचना होगी जो मैं जाउंगा और इंटरफ़ेस के लिए स्थिर lib का उपयोग करूंगा। – CodersSC

3

अपने सभी परियोजनाओं के लिए सामान्य 1 कक्षा में एक बहुत प्रत्येक परियोजना के लिए एक ही कक्षा बनाने से बेहतर है।

वास्तव में मुझे यह कहने की हिम्मत है कि लगभग किसी भी मामले में, इसे कॉपी करने के बजाय, उसी कोड का पुन: उपयोग करना। हमेशा बेहतर है

सामान्य स्थिर पुस्तकालयों में वर्तमान में जिस समस्या का सामना कर रहे हैं उसे हल करने का सबसे अच्छा टूल है।

संपादित करें:

आप दृश्य स्टूडियो में काम कर रहे हैं, तो मैं इस प्रकार इस का समाधान होगा। बेस क्लास घोषणा और परिभाषा वाली एक परियोजना बनाएं। यह परियोजनाएं स्थिर पुस्तकालय के प्रकार का होना चाहिए।

अन्य परियोजनाओं में निर्देशिका डीआईआरएस में हेडर फ़ाइल वाली निर्देशिका शामिल होनी चाहिए। और अतिरिक्त निर्भरता निर्देशिका में lib फ़ाइल युक्त निर्देशिका।

+0

हाँ मैंने अपनी बेस क्लास को एक स्थिर lib में रखा ... समझ में आता है। – CodersSC