2011-10-20 11 views
5

मुझे उत्सुकता है कि एक सिस्टम के सामान्य स्तर जो "अनुप्रयोग" के लिए वैश्विक हैं, उदाहरण के लिए, मेरे पास एक्सटेंशन हो सकते हैं जो मुझे रेल्स जैसे "डेज़एगो", "महीनोंएगो" आदि का उपयोग करने दें। पूर्णांक पर विस्तार विधि का। एक परियोजना की कौन सी परत आमतौर पर इसमें होती है? मैं इंफ्रास्ट्रक्चर सोच रहा था, लेकिन ऐसा लगता है कि डेटाबेस से संबंधित (उदा। बेस रिपॉजिटरीज और डेटा एक्सेस)। मेरे पास "कोर" लाइब्रेरी प्रोजेक्ट है, तो शायद यह वहां से संबंधित है?किसी प्रोजेक्ट की कौन सी परत सामान्य एक्सटेंशन विधियों का है?

मैं समझता हूं कि आप कक्षाओं के एक विशिष्ट समूह से संबंधित एक्सटेंशन को समूहबद्ध करना चाहते हैं, लेकिन इन्हें पूरे एप्लिकेशन में अनिवार्य रूप से उपयोग किया जाता है। विस्तार विधियों से पहले के दिनों में, वे Utilities स्थैतिक वर्ग या इसी तरह के होंगे, तो अब उन्हें कहाँ रहना चाहिए?

उत्तर

2

आप कर सकते हैं (बेहतर) कई बुनियादी सुविधाओं के उदाहरण के लिए गुंजाइश के आधार पर परियोजनाओं बनाएँ:

Infrastructure.Common (यहाँ सामान्य बुनियादी सुविधाओं की बात आती है - विस्तार के तरीकों के लिए सबसे उपयुक्त) Infrastructure.Data (डेटा एक्सेस) Infrastrcuture। ब्लै ब्लै ब्लै

2

मैं इन विधियों को सबसे कम संभव परत पर रखूंगा जहां वे वस्तुएं/संस्थाएं मौजूद होंगी।

या तो इंटरफेस में, या संस्थाओं में या एक कोर विधानसभा में, सबसे कम बेहतर इसलिए सभी ऊपरी परत के लिए इसका इस्तेमाल कर सकते हैं :)

0

तर्क में पूरा आवेदन के दायरे से बाहर है कि डालने पर विचार करें अपनी अपनी असेंबली या असेंबली।

2

मैं उन्हें एक मूल परियोजना ('कोर' जैसे कुछ) में डाल दूंगा जो अन्य सभी परियोजनाओं से संदर्भित है। यदि आप कुछ समय में एक नई परियोजना शुरू करते हैं तो आप आसानी से इन एक्सटेंशन विधियों का पुन: उपयोग कर सकते हैं।

मैं उन नामस्थानों के बारे में सोचूंगा जो आप एक्सटेंशन विधियों के अपने विभिन्न सेट के लिए उपयोग करेंगे। अगर कुछ वास्तव में डेटा से संबंधित हैं, तो उन्हें केवल कोर में डालें। डेटा नामस्थान ताकि अन्य परियोजनाओं में आपका कोड एक्सटेंशन विधियों से अव्यवस्थित न हो, जिनके संदर्भ में इसका कोई अर्थ नहीं है।

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