MVC全称是 Model——View——Controller
模型 ——视图——控制器
其核心在观察者模式,也就是一个基于发布/订阅者模型的框架
MVC在Android中的实现
对于Android而言,其界面部分的开发就涉及模型——视图——控制器 3者的交互
View层 一般采用XML文件
Model层对应数据体
Controller控制器则由Activity承担,一般情况下会在Activity中获取数据以及界面元素,并将两者进行保定,但是其逻辑不能过于复杂。
在Android的UI系统中,控制器Activity主要起到的作用是解耦,将试图View和模型Model进行分离,两者在Activity中进行绑定或者完成其他逻辑。
MVP应用架构模型
MVP能够有效地降低View的复杂性,避免业务逻辑被塞进View中,MVP模式会接触VIew与Model的耦合同时又会带来了良好的扩展性性,可测试性,保证了系统的整洁性,灵活性。
MVP模型可以分离成显示层和逻辑层,它们之间通过接口进行通信,降低耦合。理想化的MVP模式可以实现同一份逻辑搭配不同的显示界面,因为它们之间并不是依赖于具体,而是依赖于抽象,这使得Presenter可以运用任何实现了View逻辑接口的UI,使之具有更广泛的适用性,保证了灵活性。在Android上,业务逻辑和数据存取是紧耦合的,将业务逻辑与View元素严重地偶尔在一起到这了类型膨胀的问题。
MVP模式的三个角色
1.Presenter——交互中间人
Presenter主要作为沟通View和Model的桥梁,它从Model层检索数据后,返回给View层,使得View和Model之间没有耦合,也将业务逻辑从View角色上抽离出来。
2.View——用户界面
View通常是指Activity,Fragment或者某个View控件,它包含了一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作通过会转交给Presenter进行实现,最后,Presenter调用View逻辑接口,将结果返回给View元素。
3.Model——数据的存取
对于一个结构化的App来说,Model角色主要是提供数据的存取功能,Presenter需要通过Model层存储,获取数据,Model就像一个数据包仓库。Model是封装了数据库DAO或者用网络获取数据的角色,或者两种数据获取方式的集合。