MVC、MVP、MVVM這些模式是為了解決開發(fā)過程中的實(shí)際問題而提出來的,目前作為主流的幾種架構(gòu)模式而被廣泛使用。
一、MVC(Model-View-Controller)
MVC是比較直觀的架構(gòu)模式,用戶操作->View(負(fù)責(zé)接收用戶的輸入操作)->Controller(業(yè)務(wù)邏輯處理)->Model(數(shù)據(jù)持久化)->View(將結(jié)果反饋給View)。

image.png
二、MVP(Model-View-Presenter)
MVP是把MVC中的Controller換成了Presenter(呈現(xiàn)),目的就是為了完全切斷View跟Model之間的聯(lián)系,由Presenter充當(dāng)橋梁,做到View-Model之間通信的完全隔離。

image.png
三、MVVM(Model-View-ViewModel)
如果說MVP是對(duì)MVC的進(jìn)一步改進(jìn),那么MVVM則是思想的完全變革。它是將“數(shù)據(jù)模型數(shù)據(jù)雙向綁定”的思想作為核心,因此在View和Model之間沒有聯(lián)系,通過ViewModel進(jìn)行交互,而且Model和ViewModel之間的交互是雙向的,因此視圖的數(shù)據(jù)的變化會(huì)同時(shí)修改數(shù)據(jù)源,而數(shù)據(jù)源數(shù)據(jù)的變化也會(huì)立即反應(yīng)到View上

image.png