पैकेज के नाम एकवचन या बहुवचन होना चाहिए?


226

अक्सर, पुस्तकालयों में विशेष रूप से, संकुल में वे कक्षाएं होती हैं जो एक एकल अवधारणा के आसपास आयोजित की जाती हैं। उदाहरण: xml, sql, user, config, db । मुझे लगता है कि हम सभी को स्वाभाविक रूप से बहुत अच्छा लगता है कि ये पैकेज एकवचन में सही हैं ।

com.myproject। xml .Element
com.myproject एसक्यूएल .कनेक्शन
com.myproject। उपयोगकर्ता .User
com.myproject। उपयोगकर्ता .UserFactory

हालांकि, अगर मेरे पास एक पैकेज है जिसमें वास्तव में एकल प्रकार के कार्यान्वयन का संग्रह है - जैसे कि कार्य, नियम, हैंडलर, मॉडल, आदि , जो बेहतर है?

com.myproject। कार्य .TakeOutGarbageTask
com.myproject कार्य .DoTheDishesTask
com.myproject। कार्य .PaintTheHouseTask

या

com.myproject। कार्य .TakeOutGarbageTask
com.myproject कार्य .DoTheDishesTask
com.myproject कार्य .PaintTheHouseTask


5
डेटाबेस तालिका नामों की तरह एकवचन हमेशा एकवचन होना चाहिए लेकिन विभिन्न कारणों से। उदाहरण के लिए किसी भी लोकप्रिय मानक पुस्तकालय जैसे जावा या पायथन को देखें।

@Jarrod Roberson: कृपया अपने उत्तर को उत्तर के रूप में पोस्ट करें ताकि हम इसे ठीक से बढ़ा सकें।
लोट

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

@ उत्पत्ति मेरे अद्यतन उत्तर पर एक नज़र डालें।
मैथ्यू रोडैटस

@ मैथ्यू - मुझे यह पसंद है। आपने व्यक्त किया है कि मुझे क्या संदेह है लेकिन यह निश्चित नहीं था कि कैसे कोडित किया जाए।
निकोल

जवाबों:


291

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

एक वर्ग एक डेटाबेस संबंध के समान है। एक डेटाबेस संबंध को एकवचन में नामित किया जाना चाहिए क्योंकि इसके रिकॉर्ड को संबंध के उदाहरण माना जाता है। एक संबंध का कार्य सरल डेटा से एक जटिल रिकॉर्ड बनाना है।

दूसरी ओर एक पैकेज, डेटा अमूर्त नहीं है। यह कोड और नामकरण संघर्ष के समाधान के संगठन के साथ सहायता करता है। यदि किसी पैकेज का नाम एकवचन में रखा गया है, तो इसका मतलब यह नहीं है कि पैकेज का प्रत्येक सदस्य पैकेज का एक उदाहरण है; इसमें संबंधित लेकिन विषम अवधारणाएँ हैं। यदि यह बहुवचन में नाम दिया गया है (जैसा कि वे अक्सर होते हैं ), मैं उम्मीद करूंगा कि पैकेज में समरूप अवधारणाएं हैं।

उदाहरण के लिए, TaskCollectionइसके बजाय एक प्रकार का नाम होना चाहिए TasksCollection, क्योंकि यह एक संग्रह है जिसमें एक उदाहरण है Task। नामित पैकेज का com.myproject.taskमतलब यह नहीं है कि प्रत्येक निहित वर्ग एक कार्य का एक उदाहरण है। वहाँ एक हो सकता है TaskHandler, एक TaskFactory, आदि नाम के एक पैकेज com.myproject.tasks, हालांकि, विभिन्न प्रकार है कि सभी कार्य होते हैं होगा: TakeOutGarbageTask, DoTheDishesTask, आदि


13
इसी तरह के प्रश्न के लिए, english.stackexchange.com/q/25713 देखें । एक श्रेणी एकवचन के अनुरूप है और एक प्रकार बहुवचन के अनुरूप है।
मैथ्यू रोडेटस

4
आपके द्वारा प्रदान किया गया बहुत लिंक इस नियम का अपवाद दिखाता है। beansबहुवचन है, हालांकि java.beansइसमें जावाबीन्स से संबंधित सभी तरह की कक्षाएं शामिल हैं।
स्काईडान

अच्छा जवाब, लेकिन मैं डेटाबेस रिलेशन लॉजिक से सहमत नहीं हूं। एक ERD में संबंध विलक्षण हैं क्योंकि वे संस्थाओं के बीच संबंध दिखा रहे हैं। टेबल्स संबंधों का एक भौतिक कार्यान्वयन है, और वे कई पंक्तियों को धारण करते हैं, और इस प्रकार बहुवचन आईएमओ होना चाहिए। "इस तालिका में क्या है?" "उपयोगकर्ता" "उपयोगकर्ता" नहीं है। दी गई, ऐसा लगता है कि रूबी, पायथन, जावास्क्रिप्ट और PHP जैसे समुदायों में सिंगुलर नामकरण एंटरप्राइज़ वर्ल्ड (C #, Java) में अधिक सामान्य है।
राईगुए

4
@ स्काईडैन की टिप्पणी कुछ बहुत महत्वपूर्ण बताती है जो यहां पूरी तरह से अनदेखी की जा रही है। यह मुझे प्रतीत होता है कि "java.beans" का बहुवचन नामकरण वास्तव में एक गलती थी, और इसे "java.bean" नाम दिया जाना चाहिए, एकवचन।
विक्की चिजवानी

6
JavaVeans ™ के बाद से @VickyChijwani @SkyDan एक ट्रेडमार्क है, वे संभवत: इस नाम को रखना चाहते थे, जो कि प्रौद्योगिकी को संदर्भित करने के लिए है, और इसलिए उन्होंने इसका उपयोग किया java.beans
हिजाज़ी

1

यह शायद एक विशिष्ट भाषा पर निर्भर करता है। .NET (C #) में यह निश्चित रूप से एक बहुवचन होना चाहिए अगर किसी नेमस्पेस-टाइप नाम की टक्कर की संभावना है ( type name expected but namespace foundत्रुटि)। मैंने इससे निपटा है, यह सुखद नहीं है और सभी कोड में ओवर-क्वालिफाइंग प्रकार के नाम हैं। उदाहरण है

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