前端MVC、MVP、MVVM三种架构模式对比(限前端范畴)
MVC
问题:
-
View
不能独立处理用户事件 - 一个
View
对应一个Model
,复用性差 - 适合无界面、多业务处理的后端使用
模式
主要使用的是策略模式
MVP
改良:
- 用户事件由
View
处理 -
Model
与View
完全解耦,View
可抽离为接口提供给上层使用 -
View
可抽离为独立组件,适合事件处理
问题
Model
与View
的数据同步需要Presenter
手动绑定,Presenter
过重
模式
主要使用的是观察者模式
MVVM
改良
View
与Model
自动同步,只需要指定View
要显示的数据对应哪一部分的Model
即可。这种架构模式目前是最适合前端使用的。
总结
-
MV*
的目的是把数据、业务逻辑、界面三块解耦,分离关注点 - 业务逻辑不再关注底层数据读写,而数据以对象形式导给业务逻辑
- 前端以界面逻辑为主