यहाँ थोड़ी समस्या है
एक इकाई है, एक मूल्य वस्तु के साथ। एक समस्या नहीं है। मैं एक नए के लिए एक मान ऑब्जेक्ट को प्रतिस्थापित करता हूं, फिर nberberate नए मूल्य को सम्मिलित करता है और पुराने को अनाथ करता है, फिर उसे हटा देता है। ठीक है, यह एक समस्या है।
बीमित व्यक्ति अपने डोमेन में मेरी इकाई है। उसके पास पतों (मूल्य वस्तुओं) का एक संग्रह है। पतों में से एक MailingAddress है। जब हम मेलिंग पते को अपडेट करना चाहते हैं, तो मान लें कि ज़िपकोड गलत था, श्री इवांस सिद्धांत के बाद, हमें पुरानी वस्तु को एक नए के लिए बदलना होगा क्योंकि यह अपरिवर्तनीय है (एक मान ऑब्जेक्ट अधिकार?)।
लेकिन हम आपको पंक्ति को हटाना नहीं चाहते हैं, क्योंकि उस पते का PK मेलिंगहॉस्टर टेबल में एक FK है। तो, श्री इवांस सिद्धांत का पालन करते हुए, हम यहाँ बहुत ज्यादा खराब हैं। जब तक मैं अपने पते एंटिटीज नहीं बनाता, तब तक मुझे इसे "प्रतिस्थापित" करने की ज़रूरत नहीं है, और बस पुराने अच्छे दिनों की तरह इसके जिपकोड सदस्य को अपडेट करें।
इस मामले में आप मुझे क्या सुझाव देंगे? जिस तरह से मैं इसे देखता हूं, ValueObjects केवल तब उपयोगी होते हैं जब आप डेटाबेस टेबल के कॉलम (nhibernate में घटक) के एक समूह को इनकैप्सुलेट करना चाहते हैं। सब कुछ है कि डेटाबेस में एक दृढ़ता आईडी है, यह एक इकाई (जरूरी नहीं कि एक मूल जड़) बनाने के लिए बेहतर है ताकि आप पूरे ऑब्जेक्ट ग्राफ को फिर से बनाए बिना अपने सदस्यों को अपडेट कर सकें, खासकर अगर यह एक गहरी नेस्टेड ऑब्जेक्ट है।
क्या आप कंसर्न करते हैं? क्या यह श्री इवांस द्वारा एक परिवर्तनशील मूल्य वस्तु रखने की अनुमति है? या एक परस्पर मूल्य वस्तु एक इकाई के लिए एक उम्मीदवार है?
धन्यवाद