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