1、MVC架构
MVC(Model-View-Controller)是最常见的软件架构之一,应用十分广泛。
1) 软件可以分成三个部分:
① 视图(View):用户界面。
② 控制器(Controller):业务逻辑。
③ 模型(Model):数据保存。
2) 三个部分之间的通信方式:
① View接受用户的指令。
② View将请求传送给Controller。
③ Controller完成业务逻辑后,要求 Model 改变状态。
④ Model更新View的数据。
3) MVC架构的特点:
所有通信都是单向的。
2、MVP架构
将 Controller 改名为 Presenter,同时改变了通信方向。和MVC不同的是,Presenter会反作用于View,而MVC中Controller只会被动地接受View的指挥。
在MVP里,Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。
MVP与MVC的区别是MVP中的Model与View之间不通信。
1) MVP架构的特点:
① 各部分之间的通信都是双向的。
② View 与 Model 不发生联系,都通过 Presenter 传递。
③ View 不部署任何业务逻辑,即没有任何主动性,称为被动视图,所有逻辑都部署在Presenter。
2) 三个部分之间的通信方式:
① View接受用户的指令。
② View将请求传送给Presenter。
③ Presenter完成业务逻辑后,要求 Model 改变状态。
④ Model通知Presenter数据更新。
⑤ Presenter更新View的数据。
3) MVP架构的优势:
① Model与View完全分离,修改互不影响。
② 高效:主要的程序逻辑都在Presenter里实现。
③ 一个Presenter可用于多个View,而不需要改变Presenter的逻辑,因为View总是比Model变化频繁。
3、MVVM架构
将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。
MVVM与MVP的区别是它采用双向绑定,处理接收事件和View更新的工作不再需要开发者来完成,而可以交给框架。
1) MVVM架构的特点:
双向绑定——View/Model的变动,自动反映在 ViewModel,反之亦然。
2) 三个部分之间的通信方式:
① View接受用户的指令。
② View将请求传送给ViewModel。
③ ViewModel完成业务逻辑后,要求 Model 改变状态。
④ Model通知ViewModel数据更新。
⑤ ViewModel更新View的数据。
3) MVVM架构的优点
① 低耦合:View和Model可以相互独立地修改,一个ViewModel可以绑定到不同的View上,View变化时Model可以不变,Model变化时View也可以不变。
② 可重用性:可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
③ 独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,生成xml代码。
④ 可测试:测试可以针对ViewModel来写。