ক্লাস নামকরণ: একক বা বহুবচন? [বন্ধ]


58

ক্লাসের নামগুলির জন্য একক এবং বহুবচন ফর্মগুলির মধ্যে নির্বাচন করা আমার পক্ষে সবসময়ই কঠিন:

CustomerRepository vs. CustomersRepository
CustomerService vs. CustomersService
CustomerController vs. CustomersController

এবং সম্মিলিত নামের জন্য এটি আরও বেশি কঠিন:

অর্ডারকাস্টমারের রিপোসিটোরি বনাম

আপনি কোন পদ্ধতির পছন্দ করেন এবং কেন?


ক্লাসে একাধিক গ্রাহকের জন্য একটি ভান্ডার থাকবে? যদি এটি
কোনও

2
@ জেফ ও, সংগ্রহশালায় একই সময়ে GetCustomerById এবং GetCustomers পদ্ধতি থাকতে পারে
সাইবেরিয়ানগুই

2
ডেটা মডেলিংয়ে, একটি টেবিলের নাম একবাক্য হওয়া উচিত। যদি আপনার অ্যাপ্লিকেশনটি ডেটা ক্লাসগুলি ব্যবহার করে যা আপনার ডেটা মডেলের সাথে 1-1 এর সাথে সম্পর্কিত হয় তবে নামকরণকে একা রাখাই ভাল ধারণা হতে পারে। অবশ্যই 1-1 ফ্যাশনে টেবিলগুলিতে ক্লাস ম্যাপিং কোনও ওও অ্যাপ্লিকেশনটির জন্য আপনার অবজেক্ট মডেলটি তৈরি করার সেরা উপায় নাও হতে পারে, তবে এটি প্রশ্নের পাশে রয়েছে।
NoChance

উত্তর:


73

আমি একমাত্র জিনিসটি বহুগুণে সংগ্রহ করি।

foreach (var customer in customers)
{
    // do something with customer
}

আপনার সমস্ত উদাহরণ পৃথক বস্তু, তাই সেগুলি বহুবচন করা হয় নি। হ্যাঁ, নামগুলি এমন অবজেক্টগুলিকে বোঝায় যেগুলির একাধিক উদাহরণ থাকতে পারে তবে আপনাকে নামটিতে যা জানা দরকার তা হ'ল অবজেক্ট সত্তা (যেমন গ্রাহক)।

সুতরাং আপনার সমস্ত উদাহরণে এককটি সঠিক ফর্ম is জীবনকে অনেক সহজ করে তোলে।


2
আমি customerCollectionসংগ্রহের জন্য ব্যবহার করব , তবে এটির বাকী অংশের জন্য আমি সম্মত। এটি ডাটাবেস ডিজাইনের সেরা অনুশীলন এবং কোডেও বেশ ভাল কাজ করে।
জানু_ভি

12
আমি এখানে "সংগ্রহ" এর মতো শব্দ অপছন্দ করি। বহুবচন ব্যবহার করে ইংরেজিতে জিনিসগুলির সংগ্রহকে উল্লেখ করার উপযুক্ত উপায় রয়েছে।
রোবট

পরিবর্তে Collectionকিভাবে Iterator?
জুলিয়ান

@ জুলিয়ান আন Iteratorএকাধিক বস্তু ধরে রাখার জন্য কোনও ডেটা কাঠামো না দিয়ে কো-রুটিনের কিছু ধরণের হবে, তাই না?
উইলসন

64

একবচন ব্যবহার করুন। স্ক্রুগুলি ঘুরিয়ে দেওয়ার সরঞ্জামটিকে "স্ক্রু ড্রাইভার" নয় "স্ক্রু ড্রাইভার" বলা হয়।

তবে সেই অনুসারে আপনার পদ্ধতি এবং সম্পত্তির নাম বহুবচন করুন, কোনও মান বা সেগুলির কোনও সংগ্রহ ফিরে আসবে কিনা তা বোঝাতে।


7

অবশ্যই একবচন। আপনি কোন বস্তু তৈরি করেন না People, আপনি Personবস্তুর সংগ্রহ তৈরি করেন । শুধুমাত্র সময় আমি বহুবচন গুলো ব্যবহার করেন স্ট্যাটিক ক্লাস, অর্থাত জন্য হবে SupportServices, StringUtilsইত্যাদি তবে এই ক্ষেত্রে, বর্গ অন্য কিছু আর একটি নামস্থান হিসাবে আরো কাজ করে।


1
এবং ভাবতে ভাবতে, এই সমস্ত সময় আমি পিপলস সংগ্রহগুলি ব্যবহার করে চলেছি!
জর্ডান

2
লিস্ট <প্রেস >> লোক ... আমার কাছে ঠিক মনে হয়েছে, @ জর্দান।
স্টিভেনভি

1

মনে রাখবেন, একটি শ্রেণি একটি সামগ্রীর জন্য একটি টেম্পলেট। সুতরাং আপনি যে বিষয়টি উল্লেখ করছেন তা সম্পর্কে ভাবুন।

প্রায়শই এটি একটি একক সত্তা, বিশেষত যখন এটি একটি ORM সত্তা হয়। কখনও কখনও এটি একটি সংগ্রহ হতে পারে।

আমি বিশ্বাস করি উত্তরটি প্রসঙ্গে নির্দিষ্ট।

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