2010-02-24 17 views
7

यह है "हमेशा" मुझे परेशान ...मुझे "छतरी" प्रकार को सैनी से कैसे नामित करना चाहिए?

चलो कहते हैं कि मैं एक अंतरफलक IFiddle और एक अन्य इंटरफेस कि कुल कई अलग IFiddle रों से ज्यादा कुछ नहीं करता है दो:

public interface IFiddleFrobbler 
{ 
    IFiddle Superior { get; } 
    IFiddle Better { get; } 
    IFiddle Ordinary { get; } 
    IFiddle Worse { get; } 
    IFiddle Crackpot { get; } 
} 

(ठोस IFiddleFrobbler और IFiddle रों विन्यास पर निर्भर करते हैं और एक कारखाने द्वारा बनाई गई हैं)

मैं बार-बार इस तरह के "अम्ब्रेला" प्रकार के नामकरण पर ठोकर -। मैं कुछ वर्णनात्मक के साथ "Frobbler" का आदान-प्रदान करना चाहते हैं।

  • "संग्रह", "सूची" और "सेट" पर्याप्त नहीं हैं, इस अर्थ में कि यह एक संग्रह/सूची/सेट नहीं है जहां तत्वों को गणना, जोड़ा या हटाया जा सकता है।
  • "प्रबंधक" बाहर है, क्योंकि कोई प्रबंधन नहीं किया जा रहा है - फैक्ट्री और कॉन्फ़िगरेशन इसे संभालते हैं।
  • "एग्रीगेटर" इसे सीधे गोफ बुक से उठाए गए ध्वनि की तरह बनाता है (हालांकि मुझे नहीं लगता कि वे "डेमेटर के कानून" को तोड़ देंगे - यह यहां विषय से बाहर है)।

कृपया मुझे बताएं, मेरे "छतरी" प्रकारों के लिए एक अच्छी नामकरण योजना क्या है?


संपादित करें:, वहाँ इस के लिए और अधिक अर्थ विज्ञान हैxtofl pointed out in a comment के रूप में वास्तव में की तुलना में मैं पहले ऊपर से अवगत कराया। मैं बजाय निम्नलिखित करते हैं, मुझे लगता है कि मेरी जरूरत स्पष्ट है:

// 
// Used for places where the font width might need 
// to be tapered for a rendered text to fit. 
// 
public interface ITaperableFont 
{ 
    Font Font { get; } 
    Boolean CanTaper { get; } 

    void Taper(); 
} 

// 
// Used for rendering a simple marked-up text in 
// a restricted area. 
// 
public interface ITaperableFonts 
{ 
    ITaperableFont Biggest{ get; } 
    ITaperableFont Big { get; } 
    ITaperableFont Normal { get; } 
    ITaperableFont Small { get; } 
    ITaperableFont Smallest { get; } 
} 

वास्तव में, मैं एक डिजाइन दोष, नहीं एक नामकरण की समस्या है, की गंध के रूप में ऊपर वास्तविक जीवन अलावा मेरी समस्या की पहचान की है जो कई लोगों ने नीचे बताया है।

+5

IFiddleUmbrella? :) –

+3

यदि आप इसे नाम नहीं दे सकते हैं, तो मैं डिजाइन में कुछ गंदा गंध करता हूं। –

+0

@ पॉप: सही। यह मेरे जीवन को आसान बनाने का एक व्यावहारिक तरीका है और मुझे पता है कि इसे गंध माना जा सकता है। –

उत्तर

3

मैं कहूंगा कि आपके द्वारा चुने गए नाम को आप जो हासिल करने की कोशिश कर रहे हैं उस पर निर्भर होना चाहिए। कोड उदाहरण में मैं कहूंगा कि आप जो कर रहे हैं वह रेटिंग स्थापित कर रहा है, इसलिए मैं शायद इसे IFiddleRating

एक सामान्य उत्तर के रूप में मैं कहूंगा "यह निर्भर करता है" :) मुझे यह एक अच्छा विचार मिल रहा है इसकी कोशिश करने के बाद सामान का नाम देने के लिए, यह नहीं है कि यह "0"

+0

आम तौर पर, मैं इस बात पर सहमत हूं कि "यह करने का प्रयास करने के बाद मुझे सामान का नाम देने का अच्छा विचार है, न कि यह क्या है", लेकिन इस विशिष्ट मामले में नहीं। यह केवल एक व्यवहार-कम प्रकार है, लगभग, लेकिन बिल्कुल नहीं, संग्रह/सूची/सेट की तरह। यह मेरे जीवन को आसान बनाने का एक व्यावहारिक तरीका है (जो मुझे पता है * एक गंध हो सकता है, लेकिन यह विषय नहीं है) –

+1

कम से कम इस मामले के लिए, आपको इस संग्रह के पीछे अर्थशास्त्र मिल गया है। – xtofl

+0

@xtofl: हमम ... आप वास्तव में वहां सही हो सकते हैं, अब मैं इसके बारे में सोचता हूं! –

7

क्या आप केवल बहुवचन का उपयोग कर सकते हैं: IFiddles?

+0

सौंदर्य छोटी चीजों में निहित है। धन्यवाद। –

+0

नकारात्मकता यह है कि यह केवल एक चरित्र द्वारा 'IFiddle' से अलग है: जो, कुछ शैली मार्गदर्शिकाओं के विपरीत है; फिर भी मुझे लगता है कि एक पाठक को अंतर देखने में सक्षम होना चाहिए, खासतौर पर 'आईफिडल्स' के सदस्य 'आईफिडल' के सदस्यों से काफी अलग हैं। – ChrisW

7

मैं आपके साथ सहमत हूं कि कक्षा, इंटरफ़ेस या अमूर्त वर्ग नामकरण में आपके साथ सहमत होना वास्तव में सही होना मुश्किल है। कुछ संभावित नामों कि मैं का इस्तेमाल किया है आप की तरह हो सकता है इससे पहले कि इस प्रकार हैं:

  • xxx Assistant
  • Composite xxx
  • xxx Coordinator
  • xxx Group
+0

यय! समूह अच्छा है! –

3

के रूप में पॉप कहा: "आप तो इसे नाम नहीं दे सकता, फिर मैं डिजाइन में कुछ गंदा गंध करता हूं। "

शायद आपके डिज़ाइन पर पुनर्विचार करें।

IFiddles : IDictionary<SomeType, IFiddle> 
{ 
} 

अद्यतन: यदि आप चाहते हैं यह केवल पढ़ने के लिए है कि अपने आप के लिए एक इंटरफेस बनाने के होने के लिए:

IReadOnlyDictionary<TKey,TValue> 
{ 
    TValue this[TKey] { get; } 
    int Count { get; } 
    ... 
} 

आपका जीवन कर सकते हैं अभी भी पहले की ही आसान।

+0

हमम ... लेकिन मैं स्पष्ट रूप से यह नहीं देखना चाहता कि ऐसा लगता है कि 'आईफिडल्स' द्वारा एकत्रित तत्वों के सेट में हेरफेर करना संभव है, इसलिए मुझे सभी 'जोड़ें'/निकालें 'आदि में 'NotSupportedException' को फेंकना होगा। 'आईसीओलेक्शन ' ** और ** दस्तावेज तथ्य के कार्यान्वयन। –

+0

मैंने आपके अनुरोध के अनुसार पोस्ट जोड़ा :) – bitbonk

1

मुझे लगता है कि यह वास्तव में व्यक्तिगत वरीयता की समस्या है, इसलिए मैंने एक थिसॉरस निकाल दिया और "परिवार" (जो स्वयं में ठीक हो सकता है) के समानार्थी शब्द की तलाश की।

रिश्ते, वर्गीकरण, शैली, समूह, दयालुता, उपखंड, एसोसिएशन, संबद्धता, गठबंधन, कबीले, समूह, गठबंधन, संयोजन, कॉम्बो, संघ, संघ, संघ, सहकारी, परिवार, संघ, फैलोशिप, बंधुता, गिरोह, गिल्ड, लीग, मोब, ऑर्डर, संगठन, रिंग, सोसाइटी, सोडालिटी, सोरोरिटी, सिंडिकेट, टाई-इन, टाई-अप, जनजाति, सैनिक, ट्रूप, चिड़ियाघर

मैंने कुछ ऐसे उत्पादों को छोड़ दिया जिनके पास एक विशिष्ट तकनीकी है अर्थ (जैसे संघ, अंगूठी, पूल) ... चुनें कि आपको सबसे अच्छा क्या पसंद है।

संबंधित मुद्दे