यदि मेरे पास एक फॉर्म-बैकिंग ऑब्जेक्ट है जिसमें जटिल ऑब्जेक्ट पेड़ है - एक ऐसे व्यक्ति को कहें जिसमें एक संपर्क जानकारी ऑब्जेक्ट है जिसमें पता ऑब्जेक्ट है जिसमें स्ट्रिंग्स का गुच्छा है - ऐसा लगता है कि इससे पहले कि मैं इसे बाध्य कर सकूं, ऑब्जेक्ट को ऑब्जेक्ट ऑब्जेक्ट्स के साथ पूरी तरह से पॉप्युलेट किया जाना चाहिए। इसलिए यदि मैं एक नया व्यक्ति बना रहा हूं, तो मुझे यह सुनिश्चित करने की ज़रूरत है कि इसमें बल्ले से निकलने वाली सभी घटक वस्तुएं हों, और यदि मैं डेटाबेस से किसी व्यक्ति को पुनर्प्राप्त कर रहा हूं, तो मुझे यह सुनिश्चित करना होगा कि कोई भी वस्तु जो नहीं है डेटाबेस से आबादी खाली वस्तुओं के साथ आबादी मिलता है।स्प्रिंग एमवीसी फॉर्म-बैकिंग ऑब्जेक्ट ट्री प्रारंभिकरण के लिए सर्वोत्तम अभ्यास
पहला प्रश्न, ज़ाहिर है - क्या मैं उपरोक्त मेरी धारणाओं में सही हूं? ऐसा प्रतीत होता है कि अगर मैं व्यक्ति से जुड़ने की कोशिश करता हूं। कॉन्टैक्ट इंफो.होम एड्रेस्रेस .स्ट्रीट और कोई ContactInfo नहीं है, तो मुझे एक शून्य सूचक अपवाद मिलता है।
दूसरा, मेरी ऑब्जेक्ट को आरंभ करने का सबसे अच्छा तरीका क्या है। मैं कुछ दृष्टिकोणों के बारे में सोच सकता हूं। एक घोषणा पर सभी सदस्य वस्तुओं को आरंभ करना है:
public class Person {
String name;
ContactInfo contactInfo = new ContactInfo();
//getters, setters, etc.
}
public class ContactInfo {
String phone;
Address homeAddress = new Address();
}
और आगे।
एक और तरीका एक व्यक्ति कारखाना है जो सबकुछ शुरू करता है (या फैक्ट्री विधि रखने के लिए व्यक्ति .getInstance जो सबकुछ शुरू करता है)।
डेटाबेस से किसी व्यक्ति को पुनर्प्राप्त करने के मामले में, पहला दृष्टिकोण इस मुद्दे को हल करेगा (यानी यदि इस विशेष व्यक्ति के पास डेटाबेस में कोई पता नहीं है, तो ऑब्जेक्ट में अभी भी एक पता होगा), लेकिन यह होगा मतलब प्रत्येक वस्तु को दो बार बनाना। यह सुनिश्चित नहीं है कि इसे अन्यथा कैसे संभाला जाए, डीएओ को डेटाबेस से कुछ भी पुनर्प्राप्त नहीं किया गया है, भले ही डीएओ को स्पष्ट रूप से सब कुछ पॉप्युलेट करने के अलावा। या कारखाने को ऑब्जेक्ट के माध्यम से जाने और किसी भी चीज़ को "भरने" के लिए एक विधि देने के लिए।
सुझाव?
क्या फॉर्म-बैकिंग बीन्स के लिए कोई फैक्ट्री विधि प्रदान करने का कोई तरीका है? – Antoniossss