美文网首页
MVP设计模式

MVP设计模式

作者: jacky123 | 来源:发表于2016-11-02 21:45 被阅读22次

参考资料

【译】Android开发中的MVP架构


前言

让我们思考一下为什么在Android开发中如此迫切地需要一个清晰的软件架构?

在Android开发中,如果你不考虑架构的话,Activity类往往会越来越大。这是因为,在Android中,允许View和其它线程共存于Activity内。其实最大的问题莫过于在Activity中同时存在业务逻辑和UI逻辑。这会增加测试和维护的成本。


什么是MVP?

MVP代表Model,View和Presenter。

  • View层负责处理用户事件和视图部分的展示。在Android中,它可能是Activity或者Fragment类。
  • Model层负责访问数据。数据可以是远端的Server API,本地数据库或者SharedPreference等。
  • Presenter层是连接(或适配)View和Model的桥梁。

下图是基于MVP架构的模式之一。View是UI线程。Presenter是View与Model之间的适配器。UseCase或者Domain在Model层中,负责从实体获取或载入数据。依赖规则如下


关键是,高层接口(一般为Activity或者Fragment)不知道底层接口的细节,或者更准确地说,高层接口不能,不应该,并且必须不了解底层接口的细节,是(面向)抽象的,并且是细节隐藏的


实现mvp的要点

  1. Activity只是负责处理事件监听或者展示每个视图组件
  2. 所有的业务逻辑必须委托给Presenter类
  3. 在MVP中,View和Presenter是一 一对应的(在MVVM中是一对多的)

示例见:http://www.jianshu.com/p/7567ed0d1853

其实Present负责业务,Activity只是实现了底层接口,但是没有调用IView方法,具体调用方法在哪里调用,应该是属于业务层的,我们肯定交给Present去管理。


相关文章

网友评论

      本文标题:MVP设计模式

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