經常聽到這些MVC,MVP,MVVM這些詞,其實這些都是設計模式或者說是構架範式,也就是你一個軟件從前端到後端構架的樣例模型。
MVC模式:
聽到最多的就是MVC模式,上學的時候就講過這個,Model(模型)-View(視圖)-Controller(控制器)。
我看有人把model稱之爲數據核心其實蠻有意思,因爲Model其實不只有數據,還有訪問接口的(瞭解這個的話其實後面關於MVVM要好很多),view向用戶做展示用的,controller要負責用戶的交互。
MVP模式
Model-View-Presentor
實際上MVP是對MVC框架的一次調整,當Model發生數據變化datachange事件,controller負責監聽並更新View。MVP和MVC重大不同是,View和Model是完全隔離的,所有的交互都是在Presentor裏來進行(你其實可以把這個Presentor看成Controller)。
MVVM模式
View-ViewModel-Model
通過下圖可以看到一些區別了,這邊view和model徹底斷開了,model有變化也要通過ViewModel來體現來傳達給view。爲什麼這樣搞有什麼好處?其實從實際上來看,我們的View並不一定給所有人展示的都是同樣的界面。所以有的時候,要數據綁定view上的一些屬性,做到局部響應局部更新。可以理解爲ViewModel是爲了View而設計的Model層,他的數據是和View是對應的。
MVMP
瞭解了MVVM和MVP其實MVMP就是兩者的有一次結合。
微信公衆號:我是坑貨