मैं एक ऐसी परियोजना में काम कर रहा हूं, जो भौतिक उपकरणों से संबंधित है, और मैं इस उलझन में हूं कि इस परियोजना में कुछ वर्गों को कैसे ठीक से नाम दिया जाए।
वास्तविक उपकरणों (सेंसर और रिसीवर) को ध्यान में रखते हुए एक बात है, और सॉफ्टवेयर में उनका प्रतिनिधित्व एक और है, मैं "जानकारी" प्रत्यय नाम पैटर्न के साथ कुछ वर्गों के नामकरण के बारे में सोच रहा हूं।
उदाहरण के लिए, जबकि Sensorवास्तविक संवेदक का प्रतिनिधित्व करने के लिए एक वर्ग होगा (जब यह वास्तव में किसी काम करने वाले उपकरण से जुड़ा SensorInfoहोता है ), का उपयोग केवल ऐसे सेंसर की विशेषताओं का प्रतिनिधित्व करने के लिए किया जाएगा। उदाहरण के लिए, फ़ाइल सेव करने पर, मैं ए SensorInfoको सीरीज़ करने के बजाय फ़ाइल हेडर पर अनुक्रमित करूँगा Sensor, जो किसी भी तरह का अर्थ नहीं होगा।
लेकिन अब मैं उलझन में हूं, क्योंकि वस्तुओं के जीवनचक्र पर एक मध्यभूमि है जहां मैं यह तय नहीं कर सकता कि मुझे एक या दूसरे का उपयोग करना चाहिए, या दूसरे से एक कैसे प्राप्त करना चाहिए, या यहां तक कि क्या दोनों वेरिएंट को केवल एक वर्ग तक ढह जाना चाहिए।
इसके अलावा, सभी बहुत ही सामान्य उदाहरण Employeeवर्ग स्पष्ट रूप से वास्तविक व्यक्ति का सिर्फ एक प्रतिनिधित्व है, लेकिन कोई भी वर्ग को नाम देने का सुझाव नहीं देगा EmployeeInfo, जहां तक मुझे पता है।
मैं जिस भाषा के साथ काम कर रहा हूं वह .NET है, और यह नामकरण पैटर्न इन वर्गों के साथ छूट के लिए पूरे ढांचे में सामान्य प्रतीत होता है:
DirectoryऔरDirectoryInfoकक्षाएं;FileऔरFileInfoकक्षाएं;ConnectionInfoवर्ग (कोई संवाददाताConnectionवर्ग के साथ);DeviceInfoवर्ग (कोई संवाददाताDeviceवर्ग के साथ);
तो मेरा सवाल है: क्या इस नामकरण पैटर्न का उपयोग करने के बारे में एक सामान्य तर्क है? क्या ऐसे मामले हैं जहां यह नाम ( Thingऔर ThingInfo) और अन्य मामलों के जोड़े हैं जिनके पास केवल अपने समकक्ष के बिना ThingInfoवर्ग, या वर्ग मौजूद होना चाहिए Thing?
Foo, तो आपके पास एक गैर-तात्कालिक उपयोगिता वर्ग हो सकता है Foos। जब नामकरण की बात आती है, तो महत्वपूर्ण चीज एपीआई के भीतर स्थिरता है, और आदर्श रूप से प्लेटफॉर्म पर एपीआई के पार है।
Employeeउदाहरण दर्जनों या तो ऑनलाइन या क्लासिक पुस्तकों में पाए जाते हैं, जबकि मैंने EmployeeInfoअभी तक नहीं देखा है (शायद इसलिए कि एक कर्मचारी एक जीवित प्राणी है, नहीं एक कनेक्शन या एक फाइल की तरह एक तकनीकी निर्माण)। लेकिन, सहमत, अगर EmployeeInfoकिसी परियोजना में कक्षा प्रस्तावित की जानी थी, तो मेरा मानना है कि इसका उपयोग हो सकता है।

Infoप्रत्यय एक अलगstaticवर्ग अपनी स्टेटफुल समकक्ष से उपयोगिता तरीकों से युक्त। यह इस तरह के रूप में एक "सबसे अच्छा अभ्यास" नहीं है; यह सिर्फ एक तरीका है कि .NET टीम एक विशेष समस्या को हल करने के लिए आई है। वे बस के रूप में आसानी से हो सकता था के साथ आते हैंFileUtilityऔरFileहै, लेकिनFile.DoSomething()औरFileInfo.FileNameबेहतर पढ़ने के लिए लग रहे हैं।