Aký je rozdiel medzi MVC a MVVM?

Je rozdiel medzi štandardným vzorom Model View Controller a vzorom Microsoft Model/View/ViewModel?

MVVM Model-View ViewModel je podobný MVC, Model-View Controller

Kontrolér je nahradený modelom ViewModel. ViewModel sa nachádza pod vrstvou používateľského rozhrania. ViewModel vystavuje dátové a príkazové objekty, ktoré pohľad potrebuje. Mohli by ste si ho predstaviť ako kontajnerový objekt, z ktorého si pohľad ide pre svoje údaje a akcie. ViewModel čerpá svoje údaje z modelu.

Russel East píše blog, v ktorom sa podrobnejšie venuje téme Why is MVVM is different from MVC

Komentáre (12)

Po prvé, MVVM je pokračovaním vzoru MVC, ktorý používa XAML na spracovanie zobrazenia. 1tomto článku 1 sú uvedené niektoré aspekty týchto dvoch vzorov.

Hlavnou myšlienkou architektúry Model/View/ViewModel sa zdá byť to, že nad údajmi ("Model") je ďalšia vrstva nevizuálnych komponentov ("ViewModel"), ktoré bližšie mapujú koncepty údajov na koncepty zobrazenia údajov ("View"). Je to ViewModel, na ktorý sa View viaže, nie priamo Model.

Komentáre (5)

MVVM pridáva do zmesi pohľadový model. To je dôležité, pretože vám to umožňuje využiť veľa z väzbového prístupu WPF bez toho, aby ste všetky špecifické časti používateľského rozhrania vložili do bežného modelu.

Možno sa mýlim, ale nie som si istý, či MVVM skutočne núti kontrolér do zmesi. Tento koncept sa mi zdá byť viac v súlade s: http://martinfowler.com/eaaDev/PresentationModel.html. Myslím si, že ľudia sa rozhodli skombinovať ho s MVC, nie že je zabudovaný do vzoru.

Komentáre (2)