2014-05-21 5 views
8

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

  1. जब कोड के माध्यम से देख, आप तुरंत एक विधि का उद्देश्य निर्धारित कर सकते हैं।
  2. एपीआई दस्तावेज को देखते समय, जावा दस्तावेज़ों के वर्णमाला क्रम के कारण सभी विधियों को एक साथ समूहीकृत किया जाता है।
  3. किसी भी आईडीई की कोड समापन सुविधा का उपयोग करते समय, आप जिस विधि को ढूंढ रहे हैं उसे ढूंढने और ढूंढने के लिए यह आसान और सहज है। यह फिर से आईडीई के वर्णमाला क्रम के कारण है।

मुझे पता है कि ऐसे कई वर्ग हैं जो जावा एपीआई का हिस्सा हैं जो जावा बीन्स नामकरण सम्मेलनों का उपयोग नहीं करते हैं। एक उदाहरण ArrayList होगा, जिसमें size() जैसी विधियां हैं।

  1. यह एक अच्छा विचार हमेशा नामकरण परंपराओं जावा बीन्स इस्तेमाल करने की कोशिश करने के लिए है:

    मैं वास्तव में दो मुख्य प्रश्न हैं? यदि नहीं, क्यों?

  2. मुझे पता है कि 0 बीजावा बीन्स बाहर आने से पहले लिखा गया था। क्या यह ओरेकल के लिए सभी (या कम से कम सबसे अधिक) नई सामग्री के लिए जावा बीन्स नामकरण सम्मेलनों का उपयोग करने के लिए प्रथागत है?

नीचे के लोगों में एक वास्तविक प्रश्न के बजाय सोचने के लिए प्राप्त करने के लिए अधिक है।

जैसा कि मैंने ऊपर बताया है, मैं हमेशा जावा बीन नामकरण सम्मेलनों के साथ अटक गया हूं। मुझे लगता है कि वे कई तरीकों से बहुत सारे फायदे प्रदान करते हैं। मुझे लगता है कि सबसे बड़ी समस्या यह है कि जावा बीन्स के बिना, बहुत से लोगों को भ्रमित नामकरण सम्मेलनों

मैं व्यक्तिगत रूप से निम्न हमेशा पालन किया जाना चाहिए का मानना ​​है , और मैं लोगों को यह बारे में क्या सोचते देखने के लिए उत्सुक हूँ उपयोग करते हैं:

  1. यदि विधि का नाम एक संज्ञा है, तो विधि से मूल्य वापस करने की उम्मीद है।
  2. यदि विधि का नाम एक क्रिया है, तो विधि हमेशा कुछ करना चाहिए। यदि विधि एक मान देता है, तो लौटाया गया मूल्य उस क्रिया से संबंधित होना चाहिए जो किया गया था।
  3. यदि विधि का नाम एक विशेषण है, तो नाम अकेले उपयोग नहीं किया जाना चाहिए। उदाहरण के लिए, big()isBig() होना चाहिए।
  4. ऐसे औंस जो किसी ऑब्जेक्ट की निहित संपत्ति नहीं हैं, अकेले उपयोग नहीं किए जाने चाहिए।
    उदाहरण के लिए:
    size()House ऑब्जेक्ट का उचित तरीका है, लेकिन door() नहीं है। इसका कारण यह है कि sizehouse की एक उत्तराधिकारी संपत्ति है जिसे प्रकृति द्वारा तय किया गया था। यह के लिए door होने के लिए शारीरिक रूप से आवश्यक नहीं है।
    door() के बजाय, विधि getDoor() नामित की जानी चाहिए।
  5. यदि विधि का नाम भाषण के कई हिस्सों का पालन करता है, तो विधि हमेशा उपयोगकर्ताओं के अंत से अनावश्यक सोच की आवश्यकता होती है। इस वजह से, विधि का नाम बदलना चाहिए।
    उदाहरण के लिए:
    मान लें कि मेरे पास profile() नामक एक विधि है। कक्षा के आधार पर यह profile() का हिस्सा है एक क्रिया या संज्ञा हो सकता है। मैं कुछ प्रोफाइल कर सकता था, या मैं प्रोफाइल प्राप्त कर सकता था। विधि का नाम getProfile() या doProfiling() पर बदलना स्पष्टीकरण जोड़ देगा।
+0

मैं कहूंगा कि इससे व्यक्तिगत राय की एक निश्चित राशि उत्पन्न होगी। निजी तौर पर, मैं बीन नामकरण सम्मेलन का उपयोग करना पसंद करता हूं क्योंकि मैं इसके प्रति आदी हो गया हूं, इसलिए जब मैं एक मूल्य को "कोशिश" या "सेट" करना चाहता हूं, तो ये विधि हस्ताक्षर हैं जिनसे मैं अपनी खोज शुरू करता हूं। क्या ओरेकल/सन के लिए नए एपीआई के साथ इन सम्मेलनों का पालन करने के लिए यह परंपरागत है, मैं वास्तव में नहीं कहूंगा, जो शर्म की तरह है – MadProgrammer

+0

कक्षाओं में प्रत्येक शब्द पूंजीकृत होता है (उदाहरण के लिए ArrayList)। –

+3

ग्रेट सवाल, भी राय-आधारित:/ पहली बार मैंने एक अपवित्र और ध्वज दिया है ... –

उत्तर

0

यदि आप varibles और गेटर/सेटर विधियों के बीच नामकरण सम्मेलनों का पालन करते हैं तो यह आपको उन उपकरणों का उपयोग करने में सक्षम बनाता है जो बीनयूटिल और स्प्रिंग जैसे उन सम्मेलनों पर भरोसा करते हैं। नामों को और अधिक पठनीय बनाने के दौरान, आप एपीआई का उपयोग करने की क्षमता खो सकते हैं जो "बॉयलरप्लेट" कोड से छुटकारा पाने में मदद करता है।

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