जावा वर्ग संस्करण विशिष्ट नामकरण परंपराएं


10

मुझे दो सॉफ्टवेयर (mech। सिमुलेशन, गैर-सीएस) के बीच एक एडेप्टर बनाना होगा। मान लें कि हमारे पास एक वर्ग है जिसका नाम है ThatThing। मुझे विभिन्न विक्रेता विशिष्ट कार्यान्वयन को संभालना होगा। इन संस्करणों में सार्थक नाम नहीं हैं (ग्रहण हेलियोस, इंडिगो आदि के विपरीत)।

1. मुझे उस वर्ग का नाम कैसे देना चाहिए जिसे संस्करण संख्या व्यक्त करनी चाहिए?

मुझे कक्षा पसंद है ThatThing_3_6_Impl, ThatThing_3_7_Implकाफी अजीब है।

जवाबों:


20

एक अलग पैकेज नाम का उपयोग करें।

com.example.version36.ThatThing
com.example.version37.ThatThing

यह आपको विशिष्ट संस्करणों के लिए सभी "चीजों" को एक साथ रखने की अनुमति देता है।

अपाचे कॉमन्स लैंग ने अपने "संस्करण 3" को फिर से जारी करते समय इस प्रारूप का उपयोग किया।


चूंकि आपको एक ही कक्षा में दोनों संस्करण को संदर्भित करने में सक्षम होने की आवश्यकता है, इसलिए मैं नामों को छोटा करूंगा:

ThatThing36
ThatThing37

आपके मामले में, यह काफी वर्णनात्मक लगता है, और यह बदसूरत Implऔर को हटा देता है _


यह अच्छा लगता है। मैं इसके बारे में सोचूंगा। यद्यपि ये संस्करण एक साथ आते हैं, हमें संदर्भों के लिए पूरी तरह से योग्य नाम का उपयोग करने की आवश्यकता है, है ना?
14:80 पर user802421

वे एक साथ कैसे आते हैं? क्या आप निर्भरता इंजेक्शन का उपयोग कर रहे हैं? किसी भी तरह से, आप सवाल का जवाब देने के लिए, हाँ।
जेरेमी हेइलर

उनके पास डेटा मॉडल के कई संस्करण हैं जो रिलीज़ के बीच बदलते हैं। सुविधाओं के कुछ विशिष्ट सबसेट एक साथ मिल रहे हैं। कोई भी पुस्तकालय समर्थन नहीं करता है (उदाहरण के लिए कोई डाय, कोई कोडगन)। यह 11 वर्षों के सॉफ्टवेयर विकास का इतिहास है :(।
user802421

उदास। क्या यह संभव है कि version37.ThatThingविस्तार होने version36.ThatThingसे दर्द से कुछ राहत मिलेगी?
जेरेमी हीलर

दुर्भाग्य से, वे संरचनात्मक रूप से भिन्न हैं और जटिल परिवर्तन की आवश्यकता है। यह बिटमैप और वेक्टर ग्राफिक की तरह है।
user802421

2

यह बहुत मायने नहीं रखता। एक कन्वेंशन चुनें जो आपको व्यक्त करने और उसके साथ चिपके रहने के लिए आवश्यक हर चीज को व्यक्त करता है।

आप ThatThing3_6"दैट थिंग 3.6" के लिए उपयोग कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.