नियंत्रक और ViewModel विभिन्न तरीकों से भिन्न होते हैं।
MVC में कंट्रोलर व्यू को जानता है, यह व्यू को बदल सकता है। यह मॉडल को भी जानता है और इसे कॉल कर सकता है। MVVM में एक ViewModel व्यू का एक सार प्रतिनिधित्व है और यह ठोस UI को नहीं जानता है, यह मॉडल को इस तरह से लपेटता है ताकि इसे वांछित के रूप में प्रदर्शित किया जा सके।
शास्त्रीय एमवीसी में, एक नियंत्रक केवल मॉडल के साथ बातचीत करने के लिए व्यू की एक रणनीति है। वास्तव में, कभी-कभी एक नियंत्रक भी आवश्यक नहीं होता है। MVVM में आपको इसकी आवश्यकता नहीं है, क्योंकि आपके पास अलग-अलग व्यवहार की आवश्यकता होने पर एक ही दृश्य के लिए अलग-अलग ViewModels हो सकते हैं। MVC में आप मॉडल के साथ संवाद करने के लिए ReadOnlyController या एक AdminController उदाहरण हो सकता है। MVVM में आपके पास सिर्फ दो ViewModels हो सकते हैं और आप वह चुनेंगे जो आपको व्यू के लिए चाहिए।
लेकिन उनमें कुछ समानताएँ हैं। दोनों पैटर्न में, व्यू एक पर्यवेक्षक है । शास्त्रीय MVC में, दृश्य मॉडल का एक पर्यवेक्षक है, MVVM में यह ViewModel का एक पर्यवेक्षक है।
दोनों पैटर्न चिंताओं को अलग करने के लिए हैं। एमवीवीएम मुख्य रूप से उपयोग में यूआई तकनीक से पूरी तरह से स्वतंत्र, व्यू का अमूर्त प्रदान करने का लक्ष्य रखता है। MVC उस तक नहीं जाता है। यह प्राथमिक ध्यान चिंताओं को अलग करने पर है, ताकि आप व्यापार तर्क (मॉडल) को ध्यान में न रखें।
हो सकता है कि आपको मेरा यह उत्तर भी इसी तरह के प्रश्न के लिए मददगार लगे।
अंत में, मुझे कहना चाहिए कि दोनों पैटर्न एक ही परिवार के हैं। MVP, जिनमें से MVVM एक वंशज है, MVC का सहोदर है। यदि आप मार्टिन फावलर की वेबसाइट के इस लिंक को अधिक जानना चाहते हैं, तो वह विस्तार से बताते हैं।