मैं एक ऐसी परियोजना में काम कर रहा हूं, जो भौतिक उपकरणों से संबंधित है, और मैं इस उलझन में हूं कि इस परियोजना में कुछ वर्गों को कैसे ठीक से नाम दिया जाए।
वास्तविक उपकरणों (सेंसर और रिसीवर) को ध्यान में रखते हुए एक बात है, और सॉफ्टवेयर में उनका प्रतिनिधित्व एक और है, मैं "जानकारी" प्रत्यय नाम पैटर्न के साथ कुछ वर्गों के नामकरण के बारे में सोच रहा हूं।
उदाहरण के लिए, जबकि 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
बेहतर पढ़ने के लिए लग रहे हैं।