अपनी पुस्तक 'क्लीन आर्किटेक्चर' में, अंकल बॉब का कहना है कि प्रस्तुतकर्ता को वह डेटा प्राप्त करना चाहिए जिसे वह प्राप्त करता है जिसे वह 'आदर्श मॉडल' कहता है।
क्या यह मॉडल-व्यू-व्यूमॉडल (एमवीवीएम) डिज़ाइन पैटर्न से 'व्यूमॉडल' के समान है या यह एक साधारण डेटा ट्रांसफर ऑब्जेक्ट (डीटीओ) है?
यदि यह एक साधारण डीटीओ नहीं है, तो यह व्यू से कैसे संबंधित है? क्या पर्यवेक्षक संबंध के माध्यम से इसे देखने से अपडेट मिलता है?
मेरा अनुमान है कि यह MVVM के व्यूमॉडल की तरह अधिक है, क्योंकि उनकी पुस्तक के अध्याय 23 में रॉबर्ट मार्टिन कहते हैं:
[प्रस्तुतकर्ता का] काम आवेदन से डेटा स्वीकार करना और इसे प्रस्तुति के लिए प्रारूपित करना है ताकि दृश्य बस इसे स्क्रीन पर स्थानांतरित कर सके। उदाहरण के लिए, यदि एप्लिकेशन किसी फ़ील्ड में प्रदर्शित दिनांक चाहता है, तो वह प्रस्तुतकर्ता को दिनांक ऑब्जेक्ट सौंप देगा। प्रस्तुतकर्ता फिर उस डेटा को एक उपयुक्त स्ट्रिंग में प्रारूपित करेगा और इसे एक सरल डेटा संरचना में रखेगा जिसे व्यू मॉडल कहा जाता है, जहां व्यू इसे पा सकता है।
इसका तात्पर्य यह है कि व्यू किसी तरह व्यूमॉडल से जुड़ा हुआ है, जैसा कि उदाहरण के लिए एक फ़ंक्शन तर्क के रूप में इसे पुनः प्राप्त करने का विरोध किया गया है (जैसा कि डीटीओ के साथ मामला होगा)।
एक और कारण है कि मुझे लगता है कि ऐसा इसलिए है क्योंकि यदि आप छवि को देखते हैं, तो प्रस्तुतकर्ता दृश्य मॉडल का उपयोग करता है, लेकिन दृश्य का नहीं । जबकि प्रस्तुतकर्ता आउटपुट सीमा और आउटपुट डेटा डीटीओ दोनों का उपयोग करता है ।
यदि यह न तो DTO है और न ही MVVM से ViewModel है, तो कृपया बताएं कि यह क्या है।
ViewModel
लिए आवरण है Controller
, Presenter
और ViewModel
अंकल बॉब की स्वच्छ वास्तुकला में।
Controller
-> ICommand
और Presenter
-> data-binding mechanism
।