三種框架模式
阿新 • • 發佈:2018-11-10
#MVC
MVC是應用最廣泛的軟體架構之一,一般MVC分為:Model(模型)、Controller(控制器)和View(檢視)。這主要是基於分層的目的,讓彼此的職責分開。
View一般都是通過Controller來和Model進行聯絡的。Controller是Model和View的協調者,View和Model不直接聯絡。基本聯絡都是單向。
使用者通過Controller來操作Model以達到View的變化。
#MVP
MVP是從經典的MVC模式演變而來的,它們的基本思想有想通的地方:Controller/Presenter負責邏輯的處理,Model提供資料,View負責顯示。
在MVP中,Presenter完全把View和Model進行了分離,主要的程式邏輯在Presenter裡實現。而且,Presenter與具體的View是沒有直接關聯的,而是通過定義好的介面進行互動,從而使得在變更View的時候可以保持Presenter不變。
#MVVM
MVVM代表框架有:知名度相對偏低的Knockout、早期的Ember.js,目前比較火熱的來著Google的AngularJS,以及Vue.js。
相比前面兩種模式,MVVM只是把MVC的Controller和MVP的Presenter改成了ViewModel。View的變化會自動更新到ViewModel,ViewModel的變化也會自動同步到View上顯示。
這種自動同步是因為ViewModel中的屬性實現了Observer,當屬性變更時都能觸發對應的操作。
注:Observer即觀察者模式,Observer模式定義物件間的一對多的依賴關係,當一個物件的狀態發生改變時,所有依賴於它的物件都得到通知並自動更新。