美文网首页
MVP篇一,MVP模式的原理

MVP篇一,MVP模式的原理

作者: 简单的救赎 | 来源:发表于2016-09-13 11:46 被阅读164次

    1、介绍

    Model-view-presenter,简称MVP,是电脑软件设计工程中一种对针对MVC模式,再审议后所延伸提出的一种软件设计模式。

    2、描述

    Model-view-presenter (MVP)使用者界面设计模式的一种,被广范用于便捷自动化单元测试和在呈现逻辑中改良分离关注点(separation of concerns)。

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

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

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

    MVP 设计模式通常会再加上 Controller 做为整体应用程序的后端程序工作。

    Presenter---交互中间人

    Presenter主要作为沟通View和Model的桥梁,他从Model层获取数据后,返回给View层,使得View和Model之间没有耦合,也将业务逻辑从View角色上抽离出来

    View----用户界面

    View通常指的是Activity,Fragment或者某个View控件,它含有一个一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作转给Presenter进行实现,最后Presenter调用View逻辑接口将结果返回给View元素

    Model----数据存储

    对于一个结构化的App来说,Model角色主要是提供数据的存取功能,Presenter需要通过Model层存储,获取数据,简单的说,Model就是封装了数据库DAO或者网络获取数据的角色,或者两者方式都有的集合

    3、MVP模式的优缺点

    优点:解除View与Model的耦合性,带来良好的可扩展性、测试性。

    缺点:与MVC模式一样,对于小规模项目,反而会带来更多的工作量以及复杂性。

    4、MVP的理解补充

    下面是GitHub - antoniolg/androidmvp: MVP Android Example 项目登录模块的,目录结构。

    Presenter:中间人,管理UI逻辑和数据逻辑的实现,但是怎么实现其不用考虑。它只负责两者的结合。这里LoginPresenter是中间人要做的事,而LoginPresenterImpl是其具体操作实现。这里管理登录操作和界面登录结果显示。

    Model:就是类似JavaBean,实体类,这里数据逻辑要处理的事是LoginInteractor,即是登录操作,LoginInteractorImpl则是其具体实现,由LoginInteractorImpl获取数据操作,获得Model,就是登录获取的数据,即是JavaBean实体类,数据模型。

    View:界面显示,这里LoginView表示了界面应该有的反应,如登录成功的反应,登录失败的反应。要显示在界面上。

    相关文章

      网友评论

          本文标题:MVP篇一,MVP模式的原理

          本文链接:https://www.haomeiwen.com/subject/ehrpettx.html