.NET प्रोजेक्ट में आपके पास सहायक कक्षाएं कहां होनी चाहिए इसके लिए कुछ सर्वोत्तम अभ्यास क्या हैं? व्यवसाय परत सामग्री से अलग वर्गों का जिक्र करते हुए, लेकिन प्रस्तुति और ऐप सामग्री जैसे एपसेटिंग कॉन्फ़िगर प्रबंधक और अन्य कोड जो कभी-कभी मॉड्यूल विशिष्ट होते हैं या कभी-कभी पूरे ऐप में उपयोग किए जाते हैं।सी # परियोजना सहायक या उपयोगिता कक्षाएं व्यवस्थित करना
उत्तर
मैं हमेशा इस तरह की चीजों को बहुत तरल पदार्थ की अनुमति देता हूं। उस ने कहा:
- मैं "सहायक" कक्षाओं को किसी भी अन्य वर्ग के समान परीक्षण करता हूं। इससे उन्हें स्थैतिक नहीं होता है।
- मैं इन सहायकों को आवश्यकतानुसार व्यक्तिगत तरीकों के रूप में बनाकर शुरू कर सकता हूं। जैसा कि मुझे लगता है कि उन्हें एक से अधिक कक्षाओं में जरूरी है, मैं उन्हें उसी परियोजना में अपनी कक्षा या "उपयोगिता" कक्षा में ले जाऊंगा।
- यदि मुझे लगता है कि उन्हें एक से अधिक परियोजनाओं में आवश्यकता है, तो मैं उन्हें "पदानुक्रम" में उच्च स्थानांतरित करता हूं: परियोजना से समाधान तक, समाधान से उपप्रणाली तक, सबसिस्टम से एप्लिकेशन तक, एप्लिकेशन से पुस्तकालय या ढांचे आदि तक।
हम में से अधिकांश बस उन्हें "हेल्पर्स" फ़ोल्डर में फेंक देते हैं।
सहायक पर निर्भर करता है, तो आप विधियों को आभासी चिह्नित करना चाहेंगे ताकि यदि आवश्यक हो तो आप इसे नकल कर सकते हैं। यह उस इंटरफ़ेस से जुड़ा हुआ है जो इसे कार्यान्वित करता है, लेकिन यदि आपके पास प्रति इंटरफ़ेस केवल एक ठोस है तो यह अधिक हो सकता है।
जब तक कि सहायक विधियों की कोई बाहरी निर्भरता के साथ शुद्ध गणना नहीं होती है, किसी भी परिस्थिति में वे स्थिर नहीं हो सकते हैं।
फिर भी, पुनर्विचार।
@Randolpho, स्थिर सहायक तरीके के रूप में स्थिर होने के आपके कारण क्या हैं?विस्तार विधियों के बारे में क्या? वे आम तौर पर सहायक होते हैं लेकिन स्थिर होने की आवश्यकता होती है ... –
स्टेटिक तरीके पर क्यों रैग? – Nate
@ नेट बॉस: क्योंकि यदि आपकी स्थैतिक सहायक विधि की बाहरी निर्भरता है, तो आप स्थैतिक विधि का उपयोग करते समय उस निर्भरता से कड़े बाध्य हैं। आप इसे नकल नहीं कर सकते हैं, जिससे आपका कोड परीक्षण और बनाए रखने में अधिक कठिन हो जाता है। – Randolpho
मैं उन्हें एक यूटिल नेमस्पेस में डालता हूं। या तो मुख्यप्रोजेक्ट नेमस्पेस में यदि वे बहुत सामान्य हैं उदा। MyProject.Utils.MyHelperClass
, या यदि वे अधिक विशिष्ट हैं तो उप नामस्थान MyProject.CRM.Utils.MyCRMHelperClass
।
मेरे पास हमेशा मेरे समाधान में एक MyProject.Core क्लास लाइब्रेरी है जहां मैंने ऐसी चीजें रखीं।
संपादित करें: मैंने एक "बड़ा" प्रश्न का उत्तर दिया होगा।
एक ही परियोजना में यह सब परियोजना के आकार पर निर्भर करता है। माइक्रोसॉफ्ट डिज़ाइन दिशानिर्देश इस बात के बारे में बात करते हैं कि यदि आपके पास पांच से कम है तो मुझे नामस्थान नहीं बनाना चाहिए (अगर मुझे इस नंबर के बारे में गलत है तो मुझे सही करें) इसके भीतर टाइप करें।
हम एक विधानसभा सभी परियोजनाओं जो यह मामलों के अलावा जरूरत है जब सहायक कुछ व्यापार वस्तुओं या कोर वस्तुओं का प्रयोग करना होगा द्वारा संदर्भित करने के लिए लक्षित उदाहरण के लिए Common
कहा जाता है में इस तरह के वर्गों डाल दिया।
मैं रैंडोल्फो और बेन के संयोजन का एक संयोजन करता हूं: मैं उपयोगिता नामस्थान में "उपयोगिता" फ़ोल्डर में स्थिर सहायक कक्षाओं का उपयोग करता हूं। बेहतर फ़ाइल संगठन, शेष एप्लिकेशन नेमस्पेस को स्पष्ट रखता है।
- 1. उपयोगिता कक्षाएं .. अच्छा या बुरा?
- 2. मॉड्यूल और/या पैकेज में पाइथन कक्षाएं व्यवस्थित करना
- 3. इंटरफेस व्यवस्थित करना
- 4. मुझे अपनी एक्सकोड परियोजना फ़ाइलों को कैसे व्यवस्थित करना चाहिए?
- 5. क्लोजर कोड व्यवस्थित करना
- 6. एंड्रॉइड: परियोजना संसाधनों को व्यवस्थित कैसे करें?
- 7. मोक्स या असली कक्षाएं?
- 8. फ़ंक्शंस या कक्षाएं
- 9. हास्केल टेस्ट व्यवस्थित करना
- 10. "सार्वजनिक" नेस्टेड कक्षाएं या
- 11. एसक्यूएल सर्वर सहायक संग्रह प्रक्रिया या कॉलम पहचान को बदलने के लिए उपयोगिता (1,1)
- 12. क्या मॉडल कक्षाएं बनाना या जेनेरिक डेटाबेस उपयोगिता वर्ग के साथ छड़ी बेहतर है?
- 13. टेम्पलेट कक्षाएं और सी ++
- 14. कोको में सहायक कार्य
- 15. एक्सटेंशन विधियों को व्यवस्थित करना
- 16. Backbone.js उपयोगिता
- 17. सी ++ कक्षाएं उद्देश्य-सी कक्षा
- 18. लोगों के समूहों को व्यवस्थित रूप से व्यवस्थित करना
- 19. व्यवस्थित रूप से एक परियोजना को कैसे सौंपें?
- 20. सी ++ कक्षाएं प्रोटोटाइप संघर्ष
- 21. सी # एकल परियोजना संगठन
- 22. सी # में सहायक तरीके: स्टेटिक या गैर स्थैतिक?
- 23. एक जीयूआई आवेदन व्यवस्थित करना
- 24. सी ++ परियोजना स्रोत कोड लेआउट
- 25. उपयोगिता
- 26. कौन सी सी # परियोजना फाइलों को संस्करण नियंत्रण करना चाहिए?
- 27. बराबर विधि कार्यान्वयन सहायक (सी #)
- 28. मैं अपने पायथन परियोजना में उपयोगिता कार्यों को कहां रखूं?
- 29. एकाधिक कॉफीस्क्रिप्ट फ़ाइलों को व्यवस्थित करना
- 30. उपयोगिता विधि - एक फ़ाइल या स्ट्रिंग पास?
क्या आप कुछ ठोस उदाहरणों के साथ 'सहायक विधि' से क्या मतलब रखते हैं, इसका विस्तार कर सकते हैं? –
@jeff बहुत ज्यादा किसी भी पुन: प्रयोज्य कोड। मैं हमेशा प्रस्तुति परत से एक व्यापार परत परियोजना अलग है जो तार्किक वर्कफ़्लो आइटम की सभी कार्यक्षमता को शामिल करता है। लेकिन कॉन्फ़िगरेशन सेटिंग रैपर और वास्तविक सहायक कक्षाओं जैसी सभी चीजों के लिए जो निर्माण अनुरोधों को पसंद करते हैं, क्वेरी स्टिंग को पचते हैं, या नियंत्रण पर सामान्य कार्य करते हैं, मैं विस्तार करने के लिए बहुत आलसी हूं ... कि सॉर्टा सामान। मैं सिर्फ यह जानना चाहता हूं कि यह सब संभालने का पसंदीदा तरीका क्या है। – spaghetticowboy