प्राथमिक कारण कोड की पुन: प्रयोज्यता के लिए है। यदि आप कभी भी अपने पेशेवर जीवन में एक कार्यक्रम लिखने जा रहे हैं, तो शायद इससे कोई फर्क नहीं पड़ता। यदि आप इसका करियर बनाने की योजना बना रहे हैं, तो पुन: प्रयोज्य टुकड़े मूल्यवान हैं।अच्छी तरह से डिज़ाइन किए गए मॉडल, नियंत्रक और कक्षाओं को अन्य कार्यक्रमों में छोड़ना बहुत आसान है। मेरे द्वारा हमेशा ऐसा ही किया जाता है।
UITableViewController
पर विचार करें, जो एक नियंत्रक है। अब कल्पना करें कि क्या इसे विशेष रूप से संगीत ट्रैक (मॉडल) को संभालने के लिए डिज़ाइन किया गया था, और जब आप कुछ और संभालना चाहते थे तो आपको एक पूरी तरह से अलग टेबल-प्रबंधन वर्ग बनाने की आवश्यकता थी। इस दुःस्वप्न से बचने का कारण है कि एमवीसी को कोको में भारी मात्रा में उपयोग किया जाता है।
चीजों को विभाजित करने के अन्य तरीके हैं। कुछ भाषाओं को प्रतिनिधिमंडल के बजाय भारी मात्रा में उपclass। लेकिन कोको में, कार्यक्रमों को विभाजित करने का प्राथमिक माध्यम एमवीसी है, और यह बहुत अच्छी तरह से काम करता है।
संपादित करें: वाणिज्यिक ऐप्स विकसित करने की दुनिया से कुछ और कारण हैं।
एमवीसी में मेमोरी हैंडलिंग बहुत आसान है। जब आप ऑफस्क्रीन जाते हैं तो आप अपने मॉडल ऑब्जेक्ट्स को पकड़ सकते हैं और अपनी दृश्य ऑब्जेक्ट्स (और आपके कई नियंत्रक ऑब्जेक्ट्स) को फेंक सकते हैं।
मॉडल ऑब्जेक्ट्स को क्रमबद्ध करना आसान है जो नियंत्रकों और विचारों के साथ लिपटे नहीं हैं, और एक ही डेटा को कई तरीकों से प्रदर्शित करना बहुत आसान है। यहां तक कि एक "सरल" टेक्स्ट एडिटर में, आप स्प्लिट-स्क्रीन करने में सक्षम होना चाहते हैं, या एक ही दस्तावेज़ को दिखाने वाली कई खिड़कियां हैं। एमवीसी में यह बहुत आसान है।
यदि आपको अब या भविष्य में कोई लचीलापन की आवश्यकता नहीं है, तो आपको अधिक आर्किटेक्चर की आवश्यकता नहीं है। लेकिन ज्यादातर वास्तविक परियोजनाएं इतनी सरल नहीं हैं। बड़े कार्यक्रमों को लिखने के साथ एमवीसी जेरोक्स के अनुभव से बाहर हो गया और जब सबकुछ एक साथ फेंक दिया गया तो मुश्किलों का सामना करना पड़ा।
संपादित करें 2: मैं अपने पहले संपादित देख रहा था: "यह अजीब लगता है कि एक सरल कैलकुलेटर, MVC अवधारणा के अनुसार, दोनों एक नियंत्रक और (डिफ़ॉल्ट सेटिंग की तरह अपनी सेटिंग्स के लिए एक दृश्य होना चाहिए , या कुछ)। "
यह एमवीसी के लिए बिल्कुल कारण है। कैलकुलेटर ऐप के लिए विशेष रूप से उपयोगकर्ता सेटिंग्स को सहेजने के लिए आवश्यक सभी चीजों को दोबारा कोड करना होगा। आप एक सामान्य "कृपया इन उपयोगकर्ता सेटिंग्स को सहेजें" चाहते हैं जो यूआई से पूरी तरह से अलग था और आप इसका पुन: उपयोग कर सकते थे। ओएस एक्स पर इसे NSUserDefaults
कहा जाता है, और Calculator
ऐप इस तरह से कॉन्फ़िगरेशन को इस तरह से स्टोर करता है।
स्रोत
2011-08-12 19:14:41
मेरा सुझाव है कि आप 'एमवीसी' के अलावा सभी टैग हटा दें, वे इस प्रश्न के लिए प्रासंगिक नहीं हैं। –