2010-02-05 19 views
14

में नेस्टेड समेकन से निपटना मैं बस डीडीडी में शुरू कर रहा हूं, और मुझे कुछ डेटा मिल रहा है कि मेरे डेटा की रिलेशनशिप प्रकृति को कैसे समायोजित किया जाए। मेरे पास मेरा विश्वास है कि मुझे मेरी कुल जड़ माना जाएगा, लेकिन कुल मिलाकर कुल मिलाकर भी इसका कुल योग होगा। डेमेटर के कानून का उल्लंघन नहीं करना चाहते हैं, मैं सोच रहा हूं कि क्या मैं इस गलत के बारे में सोच रहा हूं और उम्मीद कर रहा हूं कि कुछ डीडीडी विशेषज्ञ कुछ अंतर्दृष्टि प्रदान कर सकते हैं।डीडीडी

मेरी कुल रूट मेरी Account ऑब्जेक्ट है, जिसमें AccountElement इकाइयों की कुल संख्या है, जो स्वयं ProductComponent इकाइयों के तार्किक समूह हैं।

एक Account के संदर्भ का एक AccountElement बाहर कोई अर्थ नहीं है, इसलिए मैं अपने निष्कर्ष है कि Account वस्तु मेरी कुल जड़ है के साथ आराम कर रहा हूँ, और मैं आशा करते हैं कि इकाई एक समग्र Elements संपत्ति हो रही है। यह ProductComponent संग्रह है जो मुझे उलझन में डालता है। इस कुल का कोई AccountElement के बाहर कोई अर्थ नहीं है, और वास्तव में का कोई Account के बाहर कोई अर्थ नहीं है।

मुझे नहीं लगता कि मैं इसे के लिए अपने रास्ते इलाके, जैसे करके अलग-अलग ProductComponent वस्तुओं तक पहुँचने किया जाना चाहिए है:

var reference = account.Elements(0).ProductComponents(0).ReferenceCode; 

लेकिन करने के लिए एक ही समय में यह (एक डोमेन के नजरिए से) मतलब नहीं है पर इकाई से सीधे ProductComponent तक पहुंचें।

मुझे यकीन है कि मेरे डोमेन के ज्ञान के बिना समझना थोड़ा मुश्किल है, लेकिन मुझे आशा है कि यह कुछ अच्छी प्रतिक्रिया प्राप्त करने के लिए पर्याप्त है।

+3

यदि आपको अपने ऑब्जेक्ट मॉडल को काम करने के लिए घोंसले के इस स्तर की आवश्यकता होती है, तो मैं डेमेटर के कानून के बारे में ज्यादा चिंता नहीं करता। Http://haacked.com/archive/2009/07/14/law-of-demeter-dot-counting.aspx –

+0

देखें http://www.dcmanges.com/blog/37 –

+1

धन्यवाद, फिल का आलेख था सहायक, और बच्चों के बच्चों से संबंधित रूप से संबंधित रूप से संबंधित सवाल यह है कि कुल रूट पर वास्तव में महत्वपूर्ण है। उस पर ध्यान देना, यह केवल इकाइयों को घोंसला करने के लिए समझ में आता है। मैं अधिक आरामदायक हूं यह सही है क्योंकि इस निर्णय के बाद कोड की दिशा बहुत अधिक अंतर्ज्ञानी प्रतीत होती है। या डीडीडी की भावना में, मैं यह कहकर बेहतर हो सकता हूं कि यह सर्वव्यापी भाषा का एक वास्तविक आधार है;) –

उत्तर

1

रॉबर्ट से जुड़ा लेख एक अच्छा है। मैं जोड़ूंगा कि यदि उत्पादकंपोनेंट केवल खाताधारण के संदर्भ में मौजूद है और खाता समाप्ति केवल खाते के संदर्भ में मौजूद है, तो एक्सटेंशन द्वारा उत्पादकंपोनेंट खाते के संदर्भ में है।

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