প্যাকেজের নামগুলি একক বা বহুবচন হওয়া উচিত?


226

প্রায়শই, বিশেষত গ্রন্থাগারগুলিতে, প্যাকেজগুলিতে এমন একটি ক্লাস থাকে যা একক ধারণার চারপাশে সংগঠিত হয়। উদাহরণস্বরূপ: এক্সএমএল, এসকিউএল, ব্যবহারকারী, কনফিগারেশন, ডিবি । আমি মনে করি আমরা সকলেই খুব স্বাভাবিকভাবেই অনুভব করি যে এই প্যাকেজগুলি এককথায় সঠিক ।

com.myproject। xml। এলিমেন্ট com.myproject
ro SQL .Connection
com.myproject। ব্যবহারকারী
ব্যবহারকারী com.myproject । ব্যবহারকারী .UserFactory

তবে, যদি আমার কাছে এমন একটি প্যাকেজ থাকে যা আসলে একটি একক প্রকারের বাস্তবায়নের সংকলন রাখে - যেমন কার্য, বিধি, হ্যান্ডলার, মডেল ইত্যাদি ? তবে কোনটি পছন্দনীয়?

com.myproject। টাস্ক .টেকআউটগাড়ি টাস্ক
com.myproject। টাস্ক .ডোডডিশটাস্ক
কম.মাইপ্রোজেক্ট। কার্য .পেনটহাউসটাস্ক

অথবা

com.myproject। টাস্ক .টেকআউটগাড়িটাস্ক
কম.মাইপ্রোজেক্ট। টাস্ক .ডোডডিশটাস্ক
কম.মাইপ্রোজেক্ট। টাস্ক .পেনটহাউসটাস্ক


5
ডাটাবেস টেবিলের নামগুলির মতো একবচনটি সর্বদা একক হওয়া উচিত তবে বিভিন্ন কারণে। উদাহরণস্বরূপ জাভা বা পাইথনের মতো জনপ্রিয় স্ট্যান্ডার্ড লাইব্রেরিটি দেখুন।

@ জারোদ রবারসন: দয়া করে আপনার উত্তরটি উত্তর হিসাবে পোস্ট করুন যাতে আমরা এটি সঠিকভাবে আপভোট করতে পারি।
এস .লট

@ জারোদ কিছু উদাহরণের প্রয়োজন কারণ স্ট্যান্ডার্ড লাইব্রেরিতে বেশিরভাগ ক্লাস আমার তালিকাভুক্ত প্রথম বিভাগে পড়ে ।
নিকোল

@ রেনিসিস আমার আপডেট হওয়া উত্তরটি একবার দেখুন।
ম্যাথু রডাটাস

@ ম্যাথেজ - আমি এটি পছন্দ করি আমি যা সন্দেহ করেছি তা আপনি প্রকাশ করেছেন তবে কীভাবে কোডিং করবেন তা নিশ্চিত নন।
নিকোল

উত্তর:


291

একজাতীয় বিষয়বস্তু সহ প্যাকেজগুলির জন্য বহুবচন এবং ভিন্নজাতীয় সামগ্রীগুলির সাথে প্যাকেজগুলির জন্য একবচন ব্যবহার করুন।

একটি বর্গ একটি ডাটাবেসের সম্পর্কের অনুরূপ। একটি ডাটাবেস সম্পর্কের একক ক্ষেত্রে নামকরণ করা উচিত কারণ এর রেকর্ডগুলি সম্পর্কের উদাহরণ হিসাবে বিবেচিত হয়। কোনও সম্পর্কের কাজটি হ'ল সহজ ডেটা থেকে জটিল রেকর্ড রচনা করা।

অন্যদিকে, একটি প্যাকেজ কোনও ডেটা বিমূর্ততা নয়। কোড সংঘবদ্ধকরণ এবং নামকরণ বিরোধের সমাধানে সহায়তা করে। যদি কোনও প্যাকেজটির নাম একক ক্ষেত্রে রাখা হয়, তবে এর অর্থ এই নয় যে প্যাকেজের প্রতিটি সদস্য প্যাকেজের উদাহরণ is এটি সম্পর্কিত তবে ভিন্ন ভিন্ন ধারণা ধারণ করে। যদি এটি বহুবচনতে নামকরণ করা হয় (যেমন তারা প্রায়শই থাকে ) তবে আমি প্রত্যাশা করব যে প্যাকেজে একজাতীয় ধারণা রয়েছে।

উদাহরণস্বরূপ, কোনও প্রকারের TaskCollectionপরিবর্তে নামকরণ করা উচিত TasksCollection, কারণ এটি একটি এর উদাহরণ সহ একটি সংগ্রহ Task। নামের একটি প্যাকেজটির com.myproject.taskঅর্থ এই নয় যে প্রতিটি অন্তর্ভুক্ত শ্রেণি কোনও কাজের উদাহরণ। একটা হতে পারে TaskHandler, একটি TaskFactory, ইত্যাদি নামের একজন প্যাকেজ com.myproject.tasksঅবশ্য বিভিন্ন ধরনের যে সব কর্ম থাকতে হবে: TakeOutGarbageTask, DoTheDishesTask, ইত্যাদি


13
অনুরূপ প্রশ্নের জন্য, দেখুন ইংলিশ.স্ট্যাকেক্সচেঞ্জ / কুই / 25713 । একটি বিভাগ এককটির সাথে সাদৃশ্যপূর্ণ এবং এক ধরণের বহুবচন অনুসারে সমান।
ম্যাথিউ রডাটাস

4
আপনার সরবরাহিত খুব লিঙ্কটি এই নিয়মের ব্যতিক্রম দেখায়। beansবহুবচন, তবে java.beansজাভাবিয়ান সম্পর্কিত সমস্ত ধরণের ক্লাস রয়েছে।
স্কাইড্যান

ভাল উত্তর, কিন্তু আমি ডাটাবেস সম্পর্ক যুক্তি সঙ্গে একমত না। একটি ইআরডি-র সম্পর্কগুলি একক কারণ তারা সত্ত্বার মধ্যে সম্পর্ক দেখায়। টেবিলগুলি সম্পর্কের একটি শারীরিক বাস্তবায়ন এবং এগুলির একাধিক সারি থাকে এবং সুতরাং এটি বহুবচন আইএমও হওয়া উচিত। "এই টেবিলে কী আছে?" এর উত্তর? "ব্যবহারকারী" "ব্যবহারকারী" নয়। মঞ্জুরিপ্রাপ্ত, মনে হয় রুবি, পাইথন, জাভাস্ক্রিপ্ট এবং পিএইচপি এর মতো সম্প্রদায়ের তুলনায় এন্টারপ্রাইজ ওয়ার্ল্ডে (সি #, জাভা) একক নামকরণ বেশি দেখা যায়।
রাইগুয়ে

4
@ স্কাইড্যানের মন্তব্যটি খুব গুরুত্বপূর্ণ এমন কিছু বিষয় নির্দেশ করে যা এখানে পুরোপুরি উপেক্ষা করা হচ্ছে। আমার কাছে মনে হয় যে "জাভা.বিয়ানস" এর বহুবচন নামকরণটি আসলে একটি ভুল ছিল এবং এর পরিবর্তে এর নামকরণ করা উচিত "জাভা.বেইন", একবচন।
ভিকি চিজওয়ানি

6
@ উইকিচিজওয়ানি @ স্কাইডান যেহেতু জাভাবিয়ানস trade একটি ট্রেডমার্ক, তারা সম্ভবত এই নামটি প্রযুক্তিগতভাবে উল্লেখ করার জন্য রাখতে চেয়েছিলেন এবং তাই তারা ব্যবহার করেছে java.beans
হিজাজি

1

এটি সম্ভবত একটি নির্দিষ্ট ভাষার উপর নির্ভর করে। .NET (C #) এ নাম স্পেস-টাইপের নামের সংঘর্ষের সম্ভাবনা থাকলে ( type name expected but namespace foundত্রুটি) সম্ভবত এটি বহুবচন হওয়া উচিত । আমি এটির সাথে মোকাবিলা করেছি, এটি আনন্দদায়ক নয় এবং ফলাফলটি সমস্ত কোডেই ওভার-কোয়ালিফাইং টাইপের নামগুলিতে আসে। উদাহরণ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.