Android MVP 理解

Android MVP 理解


架构图
在这里插入图片描述

Model-view-presenter (MVP)是使用者界面设计模式的一种

Model 定义使用者界面所需要被显示的资料模型,一个模型包含着相关的业务逻辑。

View 视图为呈现使用者界面的终端,用以表现来自 Model 的资料,和使用者命令路由再经过 Presenter 对事件处理后的资料。

Presenter 包含着元件的事件处理,负责检索 Model 取得资料,和将取得的资料经过格式转换与 View 进行沟通。

Model----数据存储

对于一个结构化的App来说,Model角色主要是提供数据的存取功能,Presenter需要通过Model层存储,获取数据,简单的说,Model就是封装了数据库DAO或者网络获取数据的角色,或者两者方式都有的集合。
就是类似JavaBean,实体类,这里数据逻辑要处理的事是LoginInteractor,即是登录操作,LoginInteractorImpl则是其具体实现,由LoginInteractorImpl获取数据操作,获得Model,就是登录获取的数据,即是JavaBean实体类,数据模型。

View----用户界面

View通常指的是Activity,Fragment或者某个View控件,它含有一个一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作转给Presenter进行实现,最后Presenter调用View逻辑接口将结果返回给View元素。
界面显示,这里LoginView表示了界面应该有的反应,如登录成功的反应,登录失败的反应。要显示在界面上。

Presenter—交互中间人

Presenter主要作为沟通View和Model的桥梁,他从Model层获取数据后,返回给View层,使得View和Model之间没有耦合,也将业务逻辑从View角色上抽离出来
中间人,管理UI逻辑和数据逻辑的实现,但是怎么实现其不用考虑。它只负责两者的结合。这里LoginPresenter是中间人要做的事,而LoginPresenterImpl是其具体操作实现。这里管理登录操作和界面登录结果显示。

mvp模式的优点
解除View与Model的耦合性,带来良好的可扩展性、测试性。
降低耦合度,实现了Model和View真正的完全分离。
模块职责划分明显,层次清晰。
Presenter可以复用,一个Presenter可以用于多个View,而不需要更改Presenter的逻辑(当然是在View的改动不影响业务逻辑的前提下)。

mvp模式的缺点
与mvc模式一样,对于小规模项目,反而会带来更多的工作量以及复杂性。
额外的代码复杂度及学习成本。

总结
MVP三者之间的关系是:View和Model之间没有联系,View通过接口与Presenter进行交互,Model不主动和Presenter联系,被动的等着Presenter来调用其接口,Presenter通过接口和View/Model来联系

以上纯属于个人理解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值