एमवीपी और स्वच्छ वास्तुकला में क्या अंतर है


13

प्रश्न स्व व्याख्यात्मक है, सिर्फ अपने विचारों को जोड़ने के लिए:
जहां तक ​​मैंने पढ़ा है, क्लीन आर्क में प्रस्तुति परत की एमवीपी में एमवी की तरह ही जिम्मेदारी है।

कैसे एक दूसरे के बजाय एक पैटर्न चुनने का फैसला करता है?


एमवीपी स्वच्छ वास्तुकला का हिस्सा है, इस लेख को androidwave.com/android-mvp-altecture-for-beginners-demo-app
सूर्य प्रकाश कुशवाह

जवाबों:


15

बॉब मार्टिन जिसे " क्लीन आर्किटेक्चर " कहते हैं, वह एक "मेटा आर्किटेक्चर" है, जो स्तरित आर्किटेक्चर बनाने के लिए एक उच्च स्तरीय दिशानिर्देश है। यह ऐसा कुछ नहीं कहता

"एक मॉडल परत, एक दृश्य परत और एक प्रस्तुति परत होनी चाहिए, और उन्हें MVP का उपयोग करके लागू किया जाना चाहिए ",

इसमें परतों के लिए केवल अधिक सामान्य नियम शामिल हैं जैसे "निर्भरताएं बाहरी सर्कल से आंतरिक सर्कल तक जाना चाहिए, न कि इसके विपरीत" । और MVP में, व्यू (= UI) प्रस्तुतकर्ता को जान सकता है, लेकिन प्रस्तुतकर्ता को इंटरफ़ेस से व्यू से हटा दिया जाता है, MVP कई संभावित समाधानों में से एक है जो इस नियम को पूरा करता है।

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


यदि मैं एमवीपी पैटर्न का पालन करता हूं, तो क्या यह गारंटी है कि मैंने स्वच्छ वास्तुकला नियमों का उल्लंघन नहीं किया है?
मेहरदाद शोखरी

1
@ मेहरदाद: नहीं। एमवीपी आपको केवल "निर्भरता नियम" प्राप्त करने में मदद करता है, और केवल परतों के बीच दृश्य और प्रस्तुतकर्ता, साथ ही प्रस्तुतकर्ता और मॉडल के बीच, कोई कम, कोई अधिक नहीं। आपको अब भी बॉब मार्टिन के लेख में वर्णित अन्य सभी चीजों की देखभाल करनी होगी। उदाहरण के लिए, केवल MVP परतों के बीच जटिल डेटा संरचनाओं को पारित करने से किसी को नहीं रोकता है (जैसा कि उस लेख में उल्लिखित सरल डेटा संरचनाओं के विपरीत है जो सीमाओं को पार करने के लिए उपयोग किया जाना चाहिए)।
डॉक्टर ब्राउन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.