मैं डोमेन संचालित डिज़ाइन की अपनी वर्तमान समझ का उपयोग करके एक नया एप्लिकेशन बना रहा हूं। अब तक मेरे पास मेरे डोमेन में इकाइयों का प्रतिनिधित्व करने वाले वर्गों का एक समूह है और डेटाबेस से पुनर्प्राप्त/जारी रखने के लिए एक संग्रह है।डोमेन संचालित डिज़ाइन: जटिल डेटा की सूची कैसे प्राप्त करें
जिस समस्या में मैं दौड़ रहा हूं वह यह है कि यूआई में मुझे कुछ सूचियों को प्रदर्शित करने की आवश्यकता है जहां सूची में आइटम सीधे मेरे डोमेन में किसी भी संस्था को मैप नहीं करते हैं। कुछ सूची कुछ इकाइयों के काफी गहरे उत्सुक भार से बनाई जा सकती है, लेकिन अन्य डेटा अनिवार्य रूप से पुनर्प्राप्ति समय पर संश्लेषित किया जाता है और यह किसी भी इकाई का हिस्सा नहीं है। मुझे एक उदाहरण प्रदान करने दें जो उम्मीद से समस्या को स्पष्ट रूप से समझाएगा।
मेरे डोमेन में मेरे पास मूल्यांकन (उत्तर देने के लिए प्रश्नों का एक सेट) और प्रतिक्रियाएं हैं (प्रत्येक उपयोगकर्ता ने मूल्यांकन के लिए प्रदान किए गए उत्तरों) उन मूल्यांकनों के लिए। मेरे पास भी कार्य है। प्रत्येक क्रिया एक प्रतिक्रिया का प्रतिनिधित्व करती है जिसे एक प्रतिक्रिया (सबमिट, स्वीकृति, अस्वीकार, आदि) के साथ लिया गया है। मेरे पास उपयोगकर्ता भी हैं।
डेटा की सूचियों में से एक जो मुझे प्रदर्शित करने की ज़रूरत है उनमें प्रतिक्रियाओं और मूल्यांकनों (जिनमें प्रतिक्रिया नहीं दी गई) शामिल होगी, तो प्रत्येक पंक्ति में उस उपयोगकर्ता के बारे में जानकारी शामिल होगी जो वर्तमान में प्रतिक्रिया के साथ काम कर रही है (यह निर्धारित है प्रतिक्रिया पर किए गए कार्यों को देखकर पुनर्प्राप्ति का समय)। प्रत्येक पंक्ति वस्तु में शून्य या अधिक बाल वस्तुएं भी शामिल होंगी जो कि प्रतिक्रियाओं पर अब तक की गई कार्रवाइयां हैं।
समस्या यह है कि अभी मेरे पास मेरे डोमेन इकाइयों के साथ इस संपूर्ण डेटा सेट का प्रतिनिधित्व करने का कोई तरीका नहीं है। मेरी पहली प्रतिक्रिया डेटाबेस से डेटाटेबल को पुनः प्राप्त करने और मेरी डोमेन इकाइयों को बाईपास करना होगा। लेकिन मुझे डोमेन ऑब्जेक्ट्स के साथ काम करने और ऑब्जेक्ट्स में पके हुए विभिन्न इकाइयों के बीच संबंध रखने में बहुत अधिक मूल्य दिखाई देता है। तो मेरा अगला विचार इन सूचियों का समर्थन करने के लिए मेरी डोमेन इकाइयों को संशोधित करना होगा, लेकिन मुझे चिंता है कि मैं इन प्रविष्टियों के परिदृश्यों का समर्थन करने के लिए अपनी संस्थाओं में अजीब गुण जोड़ रहा हूं और यह कि मैं अनिवार्य रूप से गहरे भार से प्रदर्शन को प्रभावित कर सकता हूं ऑब्जेक्ट्स जब मुझे केवल अपने ऐप्स में कुछ स्थानों में उस डेटा की आवश्यकता होती है।
ठीक है, अब मैं सेवाओं पर पढ़ रहा हूं। जब आप कहते हैं कि सेवा डेटा को एक दृश्य के रूप में पेश करेगी, तो दृश्य क्या है? क्या यह एक वर्ग है जिसे इस उद्देश्य के लिए परिभाषित किया गया है? क्या यह डोमेन इकाइयों से बना है? –
मैं एमवीसी भावना में दृश्य का उपयोग कर रहा हूं - यानी, जिसका काम आपको चीजों को दिखाने के लिए है। वास्तविक प्रासंगिक डेटा सेवा द्वारा एकत्रित किया जाएगा, जिसे दृश्य तब सौंप दिया जाता है और प्रदर्शित करने के लिए कहा जाता है (आपके मामले में, यह आपके द्वारा उल्लेख की गई "डेटा की सूची" है)।एक सेवा अलग-अलग वर्गों में चीजों को लपेटने का फैसला कर सकती है (विशेष रूप से यदि कई विचार एक ही डेटा का उपयोग करते हैं) इसे विचारों को सौंपने से पहले, लेकिन इसका कोई मतलब नहीं है। –