MVC
問題:
View
不能獨立處理用戶事件- 一個
View
對應一個Model
,複用性差 - 適合無界面、多業務處理的後端使用
模式
主要使用的是策略模式
MVP
改良:
- 用戶事件由
View
處理 Model
與View
完全解耦,View
可抽離爲接口提供給上層使用View
可抽離爲獨立組件,適合事件處理
問題
Model
與View
的數據同步需要Presenter
手動綁定,Presenter
過重
模式
主要使用的是觀察者模式
MVVM
改良
View
與Model
自動同步,只需要指定View
要顯示的數據對應哪一部分的Model
即可。這種架構模式目前是最適合前端使用的。
總結
MV*
的目的是把數據、業務邏輯、界面三塊解耦,分離關注點- 業務邏輯不再關注底層數據讀寫,而數據以對象形式導給業務邏輯
- 前端以界面邏輯爲主