जावा सार वर्ग नामकरण


9

उदाहरण:

आप अजाक्स क्रियाओं के लिए एक सार वर्ग बनाते हैं। विभिन्न अजाक्स क्रियाएं सभी इस वर्ग का विस्तार करेंगी।

मुसीबत:

  1. क्या आप कक्षा अजाक्सएशन या एब्स्ट्रैक्टअजैक्शन को नाम देते हैं?
  2. जब आप उप-वर्ग बनाते हैं, तो क्या आप उनका नाम लेते हैं:
    • कार्य
    • AjaxAction
    • बस उन्हें नाम दें कि वे क्या हैं

मैं "आधिकारिक" सम्मेलन नहीं पा रहा हूं। मुझे "सार" उपसर्ग या उपवर्गों में किसी भी आवश्यक नामकरण सम्मेलन की आवश्यकता नहीं दिख रही है । (यह वैसे भी फिट हो सकता है, निर्भर करता है)

क्या कोई आधिकारिक सम्मेलन है? क्या आप मुझे इससे जोड़ सकते हैं? और इस विषय पर आपकी क्या राय है?

जवाबों:


16

जब भी संभव हो, मैं अमूर्त वर्ग या इंटरफ़ेस के लिए उपसर्ग / प्रत्यय सहित नामों से बाहर कार्यान्वयन विवरण छोड़ने की कोशिश करता हूं।

नामकरण पर मार्गदर्शन / प्रेरणा देखने के लिए एक जगह जावा एपीआई है। मैं किसी भी ऐसे भाग के बारे में नहीं सोच सकता जो उपसर्ग का उपयोग करता है (एक विशाल अपवाद संग्रह एपीआई होने के नाते, जो सार उपसर्ग का भारी उपयोग करता है)। निम्नलिखित खोज से कुछ बहुत अच्छे उदाहरण मिलेंगे:

"public abstract class" पर download.oracle.com/javase/6

आप पाएंगे कि अमूर्त वर्गों को कुछ सार नाम दिया गया है और कंक्रीट उपवर्गों को कुछ अधिक ठोस नाम दिया गया है। उदाहरण के लिए, अमूर्त वर्ग Readerठोस उपवर्गों है BufferedReader, StringReader, InputStreamReader, आदि

चूंकि आपके ठोस उपवर्ग आपके अमूर्त वर्ग के अधिक विशिष्ट संस्करण हैं, इसलिए यह आपके नामों को उसी तरह से चुनने का इरादा है। आपके उदाहरण में, मैं सार वर्ग AjaxActionका नाम दूंगा और ठोस उपवर्गों ( SpecificAjaxAction) के नामों में इसका उपयोग करूंगा ।


12

कुछ चुनें , और लगातार रहें। चाहे आप Baseकिसी इच्छित आधार वर्ग, या उपसर्ग को इंगित करने के लिए प्रत्यय का उपयोग करें Abstract, बस इसके बारे में संगत रहें ।

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


4

मैं AjaxActionBase'एक्शन' या 'अजाक्सएक्शन' के साथ एब्सट्रैक्ट क्लास और प्रत्यय चाइल्ड क्लासेस का नाम दूंगा, जो भी मेरे द्वारा बनाए जाने वाले कार्यों के लिए अधिक स्वाभाविक रूप से पठनीय है।


0

मैं एक संकेत देना पसंद करता हूं कि एक वर्ग एक सरल लेकिन बहुत महत्वपूर्ण कारण के नाम पर अमूर्त है :

  • अमूर्त वर्गों के बजाय इंटरफेस के आसपास अपने एपीआई का निर्माण करना बेहतर है।
  • आप अपने इंटरफ़ेस को नाम देने के लिए सरल नाम जैसे "एक्शन" का उपयोग करना चाहते हैं। उदाहरण के लिए देखें जावा कलेक्शंस एपीआई में सूची या मानचित्र - ये सभी इंटरफेस हैं।

इसलिए मैं आमतौर पर एक उच्च-स्तरीय अमूर्त वर्ग को या तो AbstractAction या BaseAction कहूँगा। जब तक कोई बहुत विशिष्ट आवश्यकता नहीं है, तब तक मैं सामान्य रूप से ये सार्वजनिक नहीं करूंगा , ताकि कोड के उपयोगकर्ता इंटरफ़ेस का उपयोग करने में सक्षम हो जाएं। सार बेस कक्षाएं आमतौर पर आपके एपीआई की एक विशेषता के बजाय एक कार्यान्वयन विवरण होनी चाहिए, जब तक कि आप इस बारे में बहुत सावधान न हों कि आप लोगों को उन्हें कैसे विस्तारित करना चाहते हैं।

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