目前Android的框架模式主要有MVC、MVP和MVVM。
一、MVC模式
MVC(Model-View-Controller,模型-视图-控制器)采用业务逻辑、数据、界面显示分离的方法组织代码,在更新界面或用户交互时,不需要重新编写业务逻辑。
- 模型层(Model):业务模型。
- 视图层(View):界面描述。
- 控制层(Controller):控制业务。
缺点:View层和Model层相互耦合,不易开发和维护。
二、MVP模式
MVP(Model-View-Presenter)是MVC的演化版本。在MVP中,Presenter完全将Model和View进行了分离,主要程序逻辑在Presenter里实现。而且,Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时可以保持Presenter的不变,符合面向接口编程的特点。
- Model:数据存取。Presenter通过Model层来存储、获取数据。
- View:事件/视图展示。
- Presenter:从Model层检索数据后返回给View层,使得View和Model之间没有耦合。
特点:绝不允许View直接访问Model。Presenter就是一个中间人的角色,通过Model层来获得和保存数据,然后再通过View更新界面,在这个过程中,通过定义接口,使得View和Model没有任何交互。
三、MVVM模式
MVVM(Model-View-ViewModel)和MVP类似,只是将Presenter改为ViewModel,而且ViewHolder和Model、View进行双向绑定。当View发生改变时,ViewModel通知Model进行更新数据;当Model数据更新后,ViewModel通知View更新。