एमवीसी, सेपरेशन ऑफ़ कॉनर्न्स , एक यूआई आर्किटेक्चर में एक अभ्यास है । यह उस जटिलता को पुष्ट करने का एक तरीका है जो प्रस्तुति में सामग्री से अलग नहीं होने के कारण उपयोगकर्ता इंटरफ़ेस में हो सकती है ।
सिद्धांत रूप में, सभी वस्तुओं में ऐसा व्यवहार हो सकता है जो उनके द्वारा रखे गए डेटा पर काम करता है, और यह कि डेटा और व्यवहार संकुचित रहता है । व्यवहार में, किसी दिए गए OOP ऑब्जेक्ट में तर्क हो सकता है या नहीं हो सकता है जो उसके डेटा से मेल खाता है, या उसके पास कोई तर्क नहीं हो सकता है ( उदाहरण के लिए डेटा ट्रांसफर ऑब्जेक्ट )।
एमवीसी में, व्यापार तर्क मॉडल में जाता है, नियंत्रक नहीं। नियंत्रक वास्तव में केवल एक साथ देखने और मॉडल को एक साथ गोंद करने के लिए है। इसलिए मॉडल में, आप एक ही स्थान पर डेटा और व्यवहार कर सकते हैं।
लेकिन यह भी कि व्यवस्था सख्त डेटा / व्यवहार संलयन की गारंटी नहीं देती है। केवल डेटा वाले ऑब्जेक्ट्स को केवल लॉजिक वाले अन्य वर्गों द्वारा संचालित किया जा सकता है, और यह OOP का पूरी तरह स्वीकार्य उपयोग है।
मैं आपको एक विशिष्ट उदाहरण देता हूँ। यह थोड़ा विरोधाभास है, लेकिन मान लीजिए कि आपके पास एक Currency
वस्तु है, और वह वस्तु किसी भी उपलब्ध मुद्रा में खुद का प्रतिनिधित्व करने की क्षमता है, जो डॉलर के लिए आंकी गई है। तो आपके पास तरीके होंगे:
public decimal Yen { get { return // dollars to yen; } }
public decimal Sterling { get { return // dollars to sterling; } }
public decimal Euro { get { return // dollars to euro; } }
... और वह व्यवहार मुद्रा ऑब्जेक्ट के साथ समझाया जाएगा।
लेकिन क्या होगा अगर मैं मुद्रा को एक खाते से दूसरे खाते में स्थानांतरित करना चाहता हूं, या कुछ मुद्रा जमा करना चाहता हूं? क्या वह व्यवहार मुद्रा वस्तु में भी कूटबद्ध होगा? नहीं, यह नहीं होगा। आपके बटुए का पैसा आपके बटुए से आपके बैंक खाते में स्थानांतरित नहीं हो सकता है; उस खाते को आपके खाते में पहुंचाने में सहायता के लिए आपको एक या अधिक एजेंट (एक टेलर या एटीएम) की आवश्यकता होती है।
ताकि व्यवहार एक में समझाया की जाएगी Teller
वस्तु, और इसे स्वीकार करेंगे Currency
और Account
इनपुट के रूप में वस्तुओं, लेकिन यह किसी भी डेटा अपने आप को शामिल नहीं हैं, हो सकता है स्थानीय राज्य (या शायद एक का एक सा छोड़कर Transaction
वस्तु) मदद करने के लिए इनपुट वस्तुओं की प्रक्रिया।