MVC模式
概念
1.M是指業務模型,V是指用戶界面,C則是控制器
M即model模型, 數據層,負責數據的處理和獲取的數據接口層。
V即View視圖, 視圖層, 是指用戶看到並與之交互的界面。比如由html元素組成的網頁界面,或者軟件的客戶端界面。
C即controller控制器, 控制器層,它是 Model 和 View 之間的膠水或者說是中間人。
2.模型(model)-視圖(view)-控制器(controller)
★應用場景:主要用於中大型項目的分層開發
★運作流程
Model和View是完全隔離的,由C作爲中間人來負責二者的交互,同時三者是完全獨立分開的。這樣可以保證M和V的可測試性和複用性,但是一般由於 ,所以很難複用。
好處
耦合性低、重用性高、部署快,生命週期成本低、可維護性高
存在的問題
1.不適合小型,中等規模的應用程序
2.視圖與控制器間的過於緊密的連接並且降低了視圖對模型數據的訪問
3.不適用於前端
MVP模式
概念
MVP (Model-View-Presenter) 是MVC模式的改良,由IBM的子公司Taligent提出。和MVC的相同之處在於: Controller/Presenter負責業務邏輯, Model管理數據,View負責顯示
![]()
特點
1.在MVC裏,View是可以直接訪問Model的。但MVP中的View並不能直接使用Model,而是通過爲Presenter提供接口,讓Presenter去更新Model, 再通過觀察者模式更新View
2.與MVC相比,MVP模式通過解耦View和Model, 完全分離視圖和模型,使職責劃分更加清晰
3.View不依賴Model, 可以將View抽離出來做成組件, 它只需要提供系列接提供給上層操作
存在問題
1.Presenter作爲View和Model之間的“中間人, 除了基本的業務邏輯外,還有大量代碼需要對從View到Model和從Model到View的數據進行手動同步",這樣Presenter顯得職責很重, 維護起來會比較困難
2.由於沒有數據綁定,如果Presenter對視圖渲染的需求增多,一旦視圖需求發生改變,Presenter也需要改動。
MVVM模式
概念
1.MWM (Model-View-ViewModel) 最早由微軟提出
2.ViewModel指 "Model of View"--視圖的模型
3.MVVM是Model-View-ViewModel的簡寫,它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行爲抽象化,讓我們將視圖 UI 和業務邏輯分開。MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model)
4.Vue.js 是一個提供了 MVVM 風格的雙向數據綁定的 Javascript 庫,專注於View 層
Model --->每個頁面的單獨數據
View --->每個頁面中的HTML結構
VM ---> 調度者
Model---View---VM(ViewModel)
特點
1.MVVM把View和Model的同步邏輯自動化了
2.以前Presenter負責的View和Mode同步不再手動地進行操作,而是交給框架所提供的數據綁定功能進行負責,只需要告訴它View顯示的數據對應的是Model哪一部分即可
3.通過ViewModel進行數據綁定,當Model發生變化,ViewModel就會自動更新; ViewModel變化,Model也會更新
好處
數據驅動
VM提供數據的雙向綁定