2017-06-25 12 views
5

मैं एमवीपी पैटर्न का उपयोग करके स्वच्छ वास्तुकला और डेटा परत पर रिपोजिटरी पैटर्न के साथ एक एंड्रॉइड ऐप बना रहा हूं। मैं व्यवसाय वस्तुओं के बारे में थोड़ा उलझन में हूं। प्रस्तुति और डोमेन/डेटा परतों में एक और प्रकार की एक ही वस्तु में उपयोग करने के लिए कोई ऑब्जेक्ट होना चाहिए? यदि हां, तो किसी ऑब्जेक्ट को दूसरे प्रकार में कनवर्ट करने के लिए कहां और कब?एंड्रॉइड क्लीन आर्किटेक्चर की लेयर स्ट्रक्चर

उत्तर

3

हालांकि यह तकनीकी रूप से संभव है, आमतौर पर प्रेजेंटेशन परत के लिए डोमेन इकाइयों का विशेष प्रतिनिधित्व करने की आवश्यकता नहीं होती है।

कभी-कभी आप खुद को स्थिति में पा सकते हैं जब प्रस्तुति परत को कई इकाइयों को एक साथ बंडल करने की आवश्यकता होती है (उदा। चैट में भाग लेने वाले दो उपयोगकर्ताओं के बारे में जानकारी दिखाएं)। ऐसे मामलों में, आप एक रैपर को परिभाषित कर सकते हैं जो आवश्यक इकाइयों को एक साथ बंडल करेगा।

हालांकि, मेरे अनुभव में, इस तरह के बंडल की शायद ही कभी आवश्यकता होती है और कीमत के साथ आता है: प्रस्तुति परत सभी बंडल डेटा के लिए "प्रतीक्षा करती है" भले ही इस डेटा के कुछ हिस्सों को उपयोगकर्ता को दिखाया जा सके (उदाहरण के लिए एक के बारे में जानकारी उपयोगकर्ता को तुरंत दिखाया जा सकता है, लेकिन अन्य उपयोगकर्ता के बारे में जानकारी सर्वर से प्राप्त की जाती है)। इससे आवेदन की अनुमानित प्रतिक्रिया कम हो जाती है।

सामान्यतः, क्लाइंट एप्लिकेशन के लिए, डोमेन ऑब्जेक्ट्स की योजना आमतौर पर उपयोगकर्ता इंटरफ़ेस विनिर्देशों से ली जाती है। इसलिए, यदि आप मिल प्रस्तुति परत के लिए डोमेन वस्तुओं की एक अलग प्रतिनिधित्व पर विचार, यह बहुत संभव है निम्नलिखित डिजाइन मुद्दों पहले से ही एप्लिकेशन में मौजूद एक है कि:

  1. डोमेन वस्तुओं आवेदन में इस्तेमाल के रूप में ही कर रहे हैं लोगों को सर्वर
  2. Applicaiton की आवश्यकताओं विकसित के साथ डेटा विनिमय के लिए इस्तेमाल किया है, लेकिन डोमेन वस्तुओं परिवर्तन नहीं किया तदनुसार

तुम हमेशा चाहते नेटवर्किंग परत आवेदन के बाकी हिस्सों से decoupled किया जाना है। इसमें उन योजनाएं शामिल हैं जो सर्वर के साथ डेटा एक्सचेंज में उपयोग में हैं। यदि आपके डोमेन ऑब्जेक्ट्स सर्वर के एपीआई द्वारा लगाई गई बाधाओं को पूरा करते हैं, लेकिन प्रस्तुति परत की आवश्यकताओं को पूरा नहीं करते हैं, तो नेटवर्किंग परत और शेष ऐप के बीच "अनुवाद" तर्क पेश करना सबसे अच्छा होगा।

तो आवेदन की आवश्यकताओं बनती थीं, परंतु डोमेन वस्तुओं के बजाय प्रस्तुति परत के लिए अलग प्रतिनिधित्व होने के फिर उसके अनुसार अपडेट नहीं हुए, यह सबसे अच्छा है बस वर्तमान आवश्यकताओं के अनुसार डिजाइन की समीक्षा करने और पूरा आवेदन अद्यतन करने के लिए।

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