mvp

MVP结构初步研究

Posted by boredream on August 11, 2016

参考,Github 里 Google Demo中的基本MVP项目 https://github.com/googlesamples/android-architecture/tree/todo-mvp/

基本结构 以页面模块为单位进行分包,其中包含4个内容

  1. Activity,作为主容器
  2. Contract,协议,其中包含两个接口,分别定义View以及Present
  3. Presenter(P) ,实现协议类中的Present接口,对Model数据进行逻辑处理,然后分发给View
  4. Fragment(V),实现协议类中的View接口,进行响应的UI处理

各模块作用解释 Activity MVC传统结构中,Activity承担了C和V的功能,即处理数据,也展现UI 而MVP结构中,Activity除了本职功能外,不再处理数据,只作为容器,在其中创建V让其和P绑定等

Contract 把P和V的接口都统一写在这里,作为一个协议 可以很清楚的看到P中包含哪些功能以及V中需要进行哪些UI展示

Presenter 主要负责对Model数据进行处理,然后分发给View 不应该出现任何textView.setText此类的View操作 相当于一个中转站

Fragment 也可以直接让Activity继承协议中的View接口作为V层 单独用Fragment作为V层,可以把View部分更好的封装起来,结构更加清晰合理