আমি এমন একটি প্রকল্পে কাজ করছি যা শারীরিক ডিভাইসগুলি নিয়ে কাজ করে এবং আমি কীভাবে এই প্রকল্পের কিছু শ্রেণীর নামকরণ করতে পারি তা নিয়ে বিভ্রান্ত হয়ে পড়েছি।
প্রকৃত ডিভাইসগুলি (সেন্সর এবং রিসিভার) বিবেচনা করা একটি জিনিস এবং সফ্টওয়্যারগুলিতে তাদের উপস্থাপনা অন্যটি, আমি "ইনফো" প্রত্যয় নামের প্যাটার্ন সহ কয়েকটি শ্রেণির নামকরণের বিষয়ে ভাবছি।
উদাহরণস্বরূপ, যখন Sensorসত্যিকারের সেন্সরটি উপস্থাপন করার জন্য একটি শ্রেণি হবে (যখন এটি আসলে কোনও কার্যকরী ডিভাইসের সাথে সংযুক্ত থাকে) তখন SensorInfoকেবল এই ধরনের সেন্সরের বৈশিষ্ট্য উপস্থাপন করতে ব্যবহৃত হত। উদাহরণস্বরূপ, ফাইল সংরক্ষণের পরে, আমি একটি সিরিয়ালিয়াল করব SensorInfoফাইলের শিরোনামের পরিবর্তে Sensor, কোনটি ক্রমবর্ধমান করে যা এমনকি কোনও অর্থবোধ করে না।
তবে এখন আমি বিভ্রান্ত হয়ে পড়েছি কারণ অবজেক্টের লাইফসাইकलটিতে একটি মাঝারি ক্ষেত্র রয়েছে যেখানে আমি সিদ্ধান্ত নিতে পারি না যে আমার এক বা অন্যটি ব্যবহার করা উচিত, বা অন্যের কাছ থেকে কীভাবে পাওয়া যায়, বা এমনকি উভয় রূপগুলি কেবল একটি শ্রেণিতেই ভেঙে ফেলা উচিত কিনা।
এছাড়াও, সমস্ত সাধারণ উদাহরণ Employeeশ্রেণিটি অবশ্যই প্রকৃত ব্যক্তির উপস্থাপনা, তবে EmployeeInfoআমি যতদূর জানি কেউই পরিবর্তে ক্লাসটির নামকরণ করার পরামর্শ দেবে না।
আমি যে ভাষাটি নিয়ে কাজ করছি সেটি নেট। এবং এই শ্রেণিবদ্ধ উদাহরণগুলির জন্য এই নামকরণের ধরণটি পুরো ফ্রেমওয়ার্ক জুড়ে সাধারণ বলে মনে হচ্ছে:
DirectoryএবংDirectoryInfoক্লাস;FileএবংFileInfoক্লাস;ConnectionInfoবর্গ (কোনও সংবাদদাতাConnectionশ্রেণি ছাড়াই );DeviceInfoবর্গ (কোনও সংবাদদাতাDeviceশ্রেণি ছাড়াই );
সুতরাং আমার প্রশ্ন: এই নামকরণের ধরণটি ব্যবহার করার বিষয়ে কি সাধারণ যুক্তি আছে? এমন কিছু মামলা রয়েছে যেখানে নামের ( Thingএবং ThingInfo) এবং অন্যান্য ক্ষেত্রে কেবল জুটি থাকা ThingInfoবা বর্গের উপস্থিতি থাকা উচিত, যেখানে কেবল এই Thingশ্রেণীর কোনও অংশ নেই?
Fooঅ-ইনস্ট্যান্টেবল ইউটিলিটি ক্লাস থাকতে পারে Foos। যখন নামকরণের বিষয়টি আসে, তখন গুরুত্বপূর্ণ জিনিসটি হ'ল API এর মধ্যে ধারাবাহিকতা, এবং প্ল্যাটফর্মের API গুলি জুড়ে আদর্শ।
Employeeকয়েক ডজন লোকের দ্বারা উদাহরণগুলি অনলাইনে বা ক্লাসিক বইগুলিতে পাওয়া যায়, যদিও আমি EmployeeInfoএখনও দেখিনি (সম্ভবত কোনও কর্মচারী জীবিত, না কোনও সংযোগ বা কোনও ফাইলের মতো প্রযুক্তিগত নির্মাণ)। তবে, একমত হয়েছে, যদি EmployeeInfoকোনও প্রকল্পে ক্লাসের প্রস্তাব দেওয়া হয় তবে আমি বিশ্বাস করি যে এটির ব্যবহার হতে পারে।

Infoপ্রত্যয় একটি আলাদাstaticশ্রেণী তার stateful সহযোগীর থেকে উপযোগ পদ্ধতি রয়েছে। এটি যেমন "সেরা অনুশীলন" নয়; এটি কেবল একটি উপায় যা .NET টিম একটি নির্দিষ্ট সমস্যা সমাধানের জন্য এলো। তারা শুধু সহজে থাকতে পারে সঙ্গে আসা পর্যন্তFileUtilityএবংFileকিন্তুFile.DoSomething()এবংFileInfo.FileNameভালভাবে পড়ার বলে মনে হচ্ছে।