संबंधित वर्गों और इंटरफेस का नामकरण


9

मैंने एक ObjectParserवर्ग बनाया है जो IObjectParserDataSourceडेटा स्रोत के रूप में जोरदार टाइप की गई वस्तुओं में डेटा को पार्स करता है (डेटा एक एक्सेल फ़ाइल, टेक्स्ट फ़ाइल, सरणी, क्वेरी स्ट्रिंग, आदि हो सकता है)।

मेरे कार्यान्वयन के उदाहरण IObjectParserDataSourceहैं:

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

ये वर्ग नाम वास्तव में मुझे लंबे और जटिल लगते हैं।

मैं उन्हें नाम दे सकता था:

  • TextFileDataSource
  • ExcelFileDataSource

लेकिन यह अस्पष्टता के स्तर का परिचय देता है और वे IObjectParserDataSourceपहली नज़र में स्पष्ट रूप से संबंधित नहीं हो जाते हैं । यह महत्वपूर्ण हो जाता है क्योंकि इन डेटा स्रोतों को परिभाषित करना क्लाइंट कोड में होगा और मैं संभावित भ्रम और अनिश्चितता को कम करना चाहता हूं।

ऐसे परिदृश्य में आप इन वर्गों का नाम कैसे देंगे?


1
मुझे नहीं लगता कि आपके वर्तमान नाम बहुत लंबे और जटिल हैं।
आकाशमण्डल

मैं इस विचार को वहाँ फेंक रहा हूँ, लेकिन मैं इसकी अनुशंसा नहीं करता: यदि आप एक ही स्ट्रिंग का उपयोग करते हैं (जैसे कि "ObjectParserDataSource") तो आपके नामकरण में बहुत कुछ है, इसे संक्षिप्त करें। ExcelFileOPDS, TextFileOPDS। यह टाइपिंग और स्क्रीन स्पेस पर थोड़ा बचत करता है, लेकिन यह किसी ऐसे व्यक्ति के लिए अपारदर्शी है जो कोड से परिचित नहीं है।
बोबसन

जवाबों:


22

मैं आमतौर पर सभी समान वस्तुओं को एक नाम स्थान पर चिपकाकर और उनके नाम को सरल बनाने के द्वारा (यदि मैं यह कर सकता हूं) इस समस्या को हल करने का प्रयास करता हूं।

उदाहरण के लिए, होगा

नामस्थान ObjectParserDataSources
|
| -> कक्षा TextFileSource
| -> कक्षा ExcelFileSource

या, अगर / सर्विसिंग के साथ काम करने वाली वस्तुओं का संग्रह ObjectParserकाफी बड़ा हो जाता है, तो मैं एक अलग फ़ोल्डर ट्री या प्रोजेक्ट बनाऊंगा जो कि सिर्फ ObjectParser को समर्पित हो:

namespace ObjectParser
|
|-> class ObjectParser
|-> interface IObjectParserDataSource
|
|-> namespace DataSources
|   |
|   |-> class TextFileSource
|   |-> class ExcelFileSource
|
|-> other stuff...

किसी भी फ़ाइल के भीतर, आयात बयानों और कोड संदर्भ आमतौर पर यह बहुत स्पष्ट है कि बनाना होगा TextFileSourceहै ObjectParserडेटा स्रोत। यदि कोड के एक ही टुकड़े में कई समान नाम वाली कक्षाएं हैं, तो आप TextFileSourceइसका पूरा नाम बता सकते हैं :

var parserSource = new ObjectParser.DataSources.TextFileSource(/*...*/);

यह आमतौर पर बहुत कम ही होता है और मुझे अतिरिक्त कुछ शब्दों को टाइप करने में कोई आपत्ति नहीं है।


1
आपने मुझे उसी उत्तर को टाइप करने का समय बचाया :)
माइकल ब्राउन

1
+1। यह समाधान स्पष्टता को कम किए बिना पठनीयता में सुधार करता है।
जॉन कार्टराइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.