3 回答

TA貢獻2065條經驗 獲得超14個贊
MVC、MVP、MVVM這些模式是為了解決開發過程中的實際問題而提出來的,目前作為主流的幾種架構模式而被廣泛使用。一、MVC(Model-View-Controller)MVC是比較直觀的架構模式,用戶操作->View(負責接收用戶的輸入操作)->Controller(業務邏輯處理)->Model(數據持久化)->View(將結果反饋給View)。MVC使用非常廣泛,比如JavaEE中的SSH框架(Struts/Spring/Hibernate),Struts(View,STL)-Spring(Controller,Ioc、SpringMVC)-Hibernate(Model,ORM)以及ASP.NET中的ASP.NETMVC框架,xxx.cshtml-xxxcontroller-xxxmodel。(實際上后端開發過程中是v-c-m-c-v,v和m并沒有關系,下圖僅代表經典的mvc模型)二、MVP(Model-View-Presenter)MVP是把MVC中的Controller換成了Presenter(呈現),目的就是為了完全切斷View跟Model之間的聯系,由Presenter充當橋梁,做到View-Model之間通信的完全隔離。.NET程序員熟知的ASP.NETwebform、winform基于事件驅動的開發技術就是使用的MVP模式??丶M成的頁面充當View,實體數據庫操作充當Model,而View和Model之間的控件數據綁定操作則屬于Presenter。控件事件的處理可以通過自定義的IView接口實現,而View和IView都將對Presenter負責。三、MVVM(Model-View-ViewModel)如果說MVP是對MVC的進一步改進,那么MVVM則是思想的完全變革。它是將“數據模型數據雙向綁定”的思想作為核心,因此在View和Model之間沒有聯系,通過ViewModel進行交互,而且Model和ViewModel之間的交互是雙向的,因此視圖的數據的變化會同時修改數據源,而數據源數據的變化也會立即反應到View上。這方面典型的應用有.NET的WPF,js框架Knockout、AngularJS等。參考資料:

TA貢獻1869條經驗 獲得超4個贊
我們在項目中需要定義Model和ViewModel。 Model指的是數據實體,它負責存儲數據,并且提供了與外部資源(例如數據庫或者遠程服務)的交互。 ViewModel是指View與Model之間的一個橋梁,通常情況下,View是指界面

TA貢獻1844條經驗 獲得超8個贊
在MVC里,View是可以直接訪問Model的!從而,View里會包含Model信息,不可避免的還要包括一些業務邏輯。MVC模型關注的是Model的不變,所以,在MVC模型里,Model不依賴于View,但是View是依賴于Model的。不僅如此,因為有一些業務邏輯在View里實現了,導致要更改View也是比較困難的,至少那些業務邏輯是無法重用的。MVVM在概念上是真正將頁面與數據邏輯分離的模式,它把數據綁定工作放到一個JS里去實現,而這個JS文件的主要功能是完成數據的綁定,即把model綁定到UI的元素上。有人做過測試:使用Angular(MVVM)代替Backbone(MVC)來開發,代碼可以減少一半。此外,MVVM另一個重要特性,雙向綁定。它更方便你同時維護頁面上都依賴于某個字段的N個區域,而不用手動更新它們。
- 3 回答
- 0 關注
- 897 瀏覽
添加回答
舉報