2011-09-29 15 views
5

में इंटरफेस/कक्षाओं/कार्यान्वयन को व्यवस्थित करने के लिए कैसे करें मुझे परियोजनाओं (नामस्थान, प्रति फ़ाइल एक वर्ग आदि) को व्यवस्थित करने के बारे में कुछ प्रश्न मिलते हैं, लेकिन एक और विशिष्ट नोट पर, आप "चीजें" को व्यवस्थित कैसे करते हैं कसकर संबंधित?प्रोजेक्ट

  • एक इंटरफ़ेसIMyStuff
  • एक आधार (कभी कभी सार) वर्ग कि कि इंटरफेस के लिए बुनियादी skeletton प्रदान करता है:: BaseMyStuff
  • कार्यान्वयन कक्षाएंMyStuffWithBellsAndWhistles

    मैं आमतौर पर अंत , MyStuffWithChocolateFlavours

ऐसा लगता है कि उन्हें एक ही नामस्थान में होना चाहिए, लेकिन ऐसा लगता है कि मेरे फ़ोल्डरों को थोड़ा अधिक भीड़ होना शुरू हो गया है यदि मैं इन सभी फ़ाइलों को एक ही फ़ोल्डर में एक साथ रखता हूं (वास्तव में एक वास्तविक समस्या नहीं है, लेकिन यह अजीब लगता है)।

क्या एक ही फ़ाइल में इंटरफ़ेस और बेस क्लास दोनों को परिभाषित करना ठीक होगा?

या उप-फ़ोल्डर्स में उन चीजों को समूहित करना ठीक होगा, लेकिन उसी नामस्थान में? इस तरह:

-MyNamespace 
|-Interfaces 
    | -IMyStuff 
    | -IMyOtherStuff 
|-BaseClasses 
    | -BaseMyStuff 
    | -BaseMyOtherStuff 
|-Implementation 
    | -MyStuffWithAwesomeBehaviour 
    | -MyStuffWithGreatUsefulness 
    | -MyOtherStuffSoNeatYouWillCry 

"सर्वोत्तम प्रथाओं" संगठन के इस प्रकार के बारे में क्या हैं?

+0

यह मेरी एक झलक है जो मैं स्वयं को व्यवस्थित करने के लिए उपयोग करता हूं: http://i.stack.imgur.com/M9Rh8.png – balexandre

उत्तर

0

यदि इंटरफेस का उद्देश्य कार्यान्वयन को सारणी देना है और इंटरफ़ेस के लेखक को ज्ञात वैकल्पिक कार्यान्वयन की अनुमति नहीं है, तो मैं उन्हें एक अलग परियोजना फ़ाइल में रखने की अनुशंसा करता हूं। यूनिट परीक्षण परियोजनाओं या इंटरफ़ेस के अन्य उपभोक्ताओं का निर्माण करते समय यह उन्हें एक परियोजना संदर्भ बनाने की अनुमति देगा जो केवल इंटरफ़ेस में ड्रैग करता है और कार्यान्वयन नहीं करता है। इसका मतलब है कि ठोस वर्गों के वैकल्पिक कार्यान्वयन को कभी भी मूल ठोस प्रतिनिधित्व का संदर्भ नहीं होना चाहिए।

संबंधित मुद्दे