ProvincesByCountry पर्याप्त स्पष्ट नहीं है, क्योंकि यह मैपिंग देशों की तरह लगता है कि एक से एक को साबित किया जा सके। प्रोविन्स बायकाउंट्री ["जर्मनी"] तक पहुंचने पर मुझे उम्मीद है कि ऑब्जेक्ट्स की सूची के बजाय एक मान ऑब्जेक्ट है।
मेरा व्यक्तिगत पैटर्न समान है:
[Plural of a noun describing the value]By[Singular of a noun describing the key]
हालांकि, अगर एक संज्ञा मूल्य का वर्णन अपने स्वभाव से बहुवचन है, तो मैं पोस्टफ़िक्स सरणियों, या सूचियों उपयोग करते हैं, अंग्रेजी में आप कर सकते हैं के रूप में एक बहुवचन वास्तव में "बहुवचन" नहीं है। मैं व्यक्तिगत रूप से हमेशा IEnumerable या के वास्तविक क्रियान्वयन IEnumerable < टी> मैं उपयोग कर रहा हूँ की, सरणियों से चिपके परवाह किए बिना, हो कि सूची, या सरणी या जो कुछ भी।
ProvinceArraysByCountry
बताता है कि यह वैज्ञानिक परिशुद्धता के साथ है:
आपके मामले में यह करने के लिए बदल जाता है।
यदि नियमों के रूप में शब्दकोश हैं तो मैं इस नियम को पुनरावर्ती रूप से लागू करता हूं। तब पहुंचने का क्रम नाम के शब्दों के क्रम में विपरीत होता है।कल्पना करें कि आप ग्रह जोड़ते हैं:
ProvinceArraysByCountryByPlanet["Earth"]["Germany"][0] = "Bavaria"
ProvinceArraysByCountryByPlanet["Earth"]["Germany"][1] = "Rhineland-Palatinate"
और आखिर में आखिरी छोटी स्ट्रोक। यदि ऐसे शब्दकोश नक्शा गुण वस्तुएं और वस्तुओं को स्वयं करते हैं, तो मैं मुख्य खंड में ऑब्जेक्ट का वर्णन करने वाले शब्द को छोड़ देता हूं। यहां मेरा मतलब है:
NodesByIndex[node.Index] = node; // - Do
NodesByNodeIndex[node.Index] = node; // - Don't
मैं इस पैटर्न का बिना शर्त रूप से उपयोग करता हूं जो कि अच्छा है क्योंकि यह अनुमान लगाने के लिए बिल्कुल कोई जगह नहीं छोड़ता है। कॉन यह कभी-कभी काफी लंबे नाम उत्पन्न करता है। लेकिन मुझे नहीं पता कि हमेशा स्पष्ट कैसे होता है लेकिन हमेशा छोटे नाम होते हैं। आपको हमेशा समझौता करना पड़ता है। और यह निश्चित रूप से स्वाद का मामला है।
यह पैटर्न काम नहीं करता है (या कम से कम आप अपने मस्तिष्क को तोड़ देंगे) जब कुंजी भी शब्दकोश हों या जब आपके पास शब्दकोशों की सूचियों या कुछ अन्य पागल विदेशी सामानों की शब्दकोशों की सूची हो। लेकिन मुझे याद नहीं है कि घोंसले के कई स्तर हैं, इसलिए मैं इससे खुश हूं।
आप एक मैपिंग फ़ंक्शन के रूप में एक शब्दकोश के बारे में सोच सकते हैं या आप इसे विशेष रूप से हैशिंग/लुकअप/इंडेक्स फ़ंक्शन के रूप में सोच सकते हैं। मैपिंग अधिक सामान्य है। एक गणित समारोह पर विचार करें जो सेल्सियस को फारेहीट में चिह्नित करता है जिसे कन्वर्टसेलसियस टोफरेनहेट नाम दिया जा सकता है। "करने के लिए" जोर देता है कि इनपुट स्थान/सेट फोकस है। वाई-बाय-एक्स बेहतर कैप्चर करता है कि एक शब्दकोश एक विशिष्ट प्रकार का मैपिंग है जो सेट-आधारित हैशिंग का उपयोग करता है। "द्वारा" जोर देता है कि आउटपुट स्पेस/सेट फोकस है। एक कुंजी बेकार है जब तक कि यह कुछ अनलॉक नहीं करता है। बस मेरी राय है, लेकिन मुझे उम्मीद है कि यह कुछ अंतर्दृष्टि देने में मदद करता है। – VoteCoffee
एक और त्वरित नोट, आप इसे कैप्चर करना चाहते हैं कि यह क्या है, न कि यह क्या करता है: वास्तविक शब्द शब्द द्वारा परिभाषाओं को देखने के लिए है। यह सच है कि यह कुछ शब्दों को उनकी परिभाषाओं के लिए मानचित्रित करता है, लेकिन यह इरादे को भी कैप्चर नहीं करता है। – VoteCoffee