MVP实践

作者: 嘟嘟噜噜可 | 来源:发表于2016-04-13 22:34 被阅读307次

最近分别在两次迭代中采用MVP结构重构了业务模块,谈谈对MVP的理解

一般文章上来先介绍MVP分别是什么,换个思路来梳理MVP

一,Concept

Action vs UI
Actions vs UIs
Presenter vs View

对业务的具体的操作即是Action,例如login

对某一时刻界面的展示即是UI, 例如login edittext

Action 与UI之间的关系是:
1,Action Manager告诉UI处于什么状态,例如:
onLoginSucceed()
onLoginFailed()

2,View(UI)被触发时,向上报给ActionManager(Presenter)执行相应的Action。例如点击登录/登出按钮时触发:
login()
logout()

二,Interface-oriented Programming

面向接口编程,其实是面向抽象编程。
抽象指的是不涉及细节实现的协议,而定义(Action的)能力或(UI的)状态。

简单起见,你可以把presenter理解为可以执行很多action的manager。

先定义IloginPresenter的能力:
Note:
用最通俗的话就是说你可以让presenter干一些事情,也可以问一些你感兴趣的事情。

login(String username, String password)
logout()
isLogin()

再定义IloginView的状态:
onLoginSucceed()
onLoginSucceed()
onLoginFailed()

三,Single Invoke

废弃MVC中M和V之间的调用关系,改用一种更单纯的调用,那就是我真的是在问你,而不是只是让C透传一个数据而已。

四,Model

在复杂业务下,Model的构成可能是多个的,我们不一定需要定义一个MixedModel,可以简单的把多个data传给presenter就行。

Model是层的概念,而不是单一数据结构。给presenter提供执行或者判断所需要的数据支持。

五,常见问题

1,model被当做一个大数据在presenter和view中间传来传去
2,modle被定义为一个大而复杂的数据结构
3,view中lisenter中不应直接处理ui,而应该将事件传递给presenter,让presenter作为总分发。
4,业务划分上presenter定义的颗粒度不够,导致其他地方单独调用会麻烦。在业务上需要抽象为独立的presenter,而不应该局限在UI的整体性。一个view是可以绑定多个presenter的。

例如,支付页面的价格bar,除了有价格展示,还有文案展示,应该抽象为两个presenter:
a, PricePresenter
b, PriceInfoPresenter

M
V
P

相关文章

  • Android Mvp实践

    Android Mvp实践 简介 本文是参考google官方发布的MVP架构demo以及前人对MVP实现方式的一些...

  • MVP实践

    最近分别在两次迭代中采用MVP结构重构了业务模块,谈谈对MVP的理解 一般文章上来先介绍MVP分别是什么,换个思路...

  • MVP的四级台阶

    本篇带你快速了解MVP,然后用一个实践操作过程让我们彻底掌握MVP的使用。文章略长,欢迎收藏! 上篇:你好MVP!...

  • MVC,MVP,MVPVM(一)实践之路

    文章目录 1.MVC,MVP,MVPVM(一)实践之路2.MVC,MVP,MVPVM(二)提升效率之Templat...

  • MVC,MVP,MVPVM(二)提升效率之Templates

    文章目录 1.MVC,MVP,MVPVM(一)实践之路2.MVC,MVP,MVPVM(二)提升效率之Templat...

  • MVP 笔记

    MVP 与 MVC 简单介绍 实践 参考资料:Android MVP 详解(下)一步一步实现 Android 的M...

  • Android 架构优化~MVP 架构改造

    以前我写过一篇关于 MVP 架构的文章《Android架构—MVP架构在Android中的实践》。 随着业务的复杂...

  • Android MVP实践

    MVP模式从经典的MVC模式而来,M: Model, V:View, P:Presenter。MVP与MVC有着一...

  • Android MVP 实践

    示例代码上传在我的repo Widget中,并长期更新一些有意思的小组件或者功能。Star~ 1. MVP or...

  • MVP架构实践

    1.背景 为了使View(activity/fragment)“干净”没有更多业务逻辑污染,引入MVP设计业务逻辑...

网友评论

      本文标题:MVP实践

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