安卓开发架构---MVP

为什么需要架构设计呢?

在安卓开发中,我们通过架构设计使程序更模块化
这样可以做到:模块内高度耦合、模块间低耦合
这样使得每个开发人员只专注于自己的那一部分模块,提高程序的开发效率

MVC模式

把软件分为三部分:model(数据)、view(用户界面)、controller(控制器–业务逻辑)
MVC是一种经典的软件设计典范,通过将界面展示、数据处理和业务逻辑处理分离,实现对界面进行个性化定制时,不需要重新编写业务逻辑

这三个模块之间的通信方式:
MVC框架示意图

MVC在android中具体应用

下图为参考某一博客中的流程图,博客地址在参考中给出!
MVC流程示意图

view层(视图层)

界面布局采用xml文件。
逻辑中与界面对应的id不变化,则代码不用修改
增强了代码的可维护性
监听model层是否有数据更新

controller层(控制层)

主要由Activity实现,controller层接受用户所有的操作,并根据需求触发model层,或者触发view层
或者两者都触发
controller对view层会进行操作反馈,但是不会修改view层中的数据

model层(数据层)

model层根据controller层的指令执行,修改数据or不修改数据
修改数据时model层会与view层进行通信

MVC的缺点

1.可以看出大量的逻辑和代码都会集中在controller层,controller层的压力很大,但是view层的独立处理事件的能力没有用到
2.controller层和view层之间是一一对应的,view层不能复用,因此产生了很多冗余代码

MVP模式

MVP主要是将APP分为:model模块、view模块、presenter模块
MVC中view层可以监听model层来进行数据更新,在MVP中,view层和model层是完全独立的
具体通信方式如下:

MVP通信方式

具体来说:

view层(视图层)

view层:负责绘制UI元素,与用户进行交互,向presenter层报告用户行为。通常使用Activity或者Fragment作为view层

presenter层(业务逻辑层)

presenter层:业务逻辑层,负责view层和model层之间的交互,从model层拿到数据响应到view层,并且响应view层的用户的行为

model层(数据层)

model层:数据层,操作、检索、存储数据

MVP的优点

这样做的优点:
1.model层和view层完全分开,model层和view层是通过presenter层来交互的,我们可以修改view层,而不改变model层。因为view层的改变总是要比model层频繁。
2.从MVC到MVP,引入presenter层是为了将此前Activity中包含的大量逻辑操作转到presenter层,这样Activity不会太臃肿。
3.更高效的使用模型,所有的交互都发生presenter层

举个例子:当用户在界面的editText中输入了文字之后,view层会通知presenter层,presenter层响应view层的用户行为,应该找哪个model去完成这次响应,最后presenter层将完成的结果更新到view层

p层通过model层和view层定义的接口来操作model和view,这样activity就可以把所有的逻辑交给presenter,java逻辑就会从app的activity中分离出来

参考

https://www.tianmaying.com/tutorial/AndroidMVC
http://c.biancheng.net/view/7743.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值