一:MVC框架
视图(View):用户界面。a:传送指令到 Controller
控制器(Controller):业务逻辑 b:完成业务逻辑后,要求 Model 改变状态
模型(Model):数据保存 c:将新的数据发送到 View,用户得到反馈
所有通信都是单向的。
相信大家都熟悉这个框架,这个也是初学者最常用的框架,该框架虽然也是把代码逻辑和UI层分离,但是View层能做的事情还是很少的,很多对于页面的呈现还是交由C实现,这样会导致项目中C的代码臃肿,如果项目小,代码臃肿点还是能接受的,但是随着项目的不断迭代,代码量的增加,你就会没办法忍受该框架开发的项目,这时MVP框架就应运而生。
二、MVP
MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。1. 各部分之间的通信,都是双向的。
2. View 与 Model 不发生联系,都通过 Presenter 传递。
3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
三:MVVM框架
M-Model : 实体模型(biz/bean)V-View : 布局文件(XML)
VM-ViewModel : DataBinding所在之处,对外暴露出公共属性,View和Model的绑定器
唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然