MVP系列文章(二) - 优化attach()、detach()方法

前言

MVP系列文章
MVP系列文章(一) - MVC 与 MVP
MVP系列文章(二) - 优化attach()、detach()方法
MVP系列文章(三) - 动态代理优化每次判断 View != null
MVP系列文章(四)- GC回收原理分析
MVP系列文章(五)- 泛型擦除
MVP系列文章(六)- 代码架构与运行时架构
MVP系列文章(七)- 知识梳理

1. 泛型构建基类

1>:对于每一个presenter类都需要调用 绑定、解绑方法,即就是attach()、detach()方法,比较麻烦,所以这里抽取基类 BaseMVPActivity,采用泛型构建基类,将 attach()、detach()都放到 基类中去写就可以:

/**
 * Email: [email protected]
 * Created by Novate 2018/7/7 15:03
 * Version 1.0
 * Params:
 * Description:    泛型构建基类,将attach()、detach()方法放到基类中
*/
public abstract class BaseMVPActivity

extends AppCompatActivity implements BaseView{ private P mPresenter ; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(); // 创建 P ,只能交给子类,每个 Activity都不一样 mPresenter = createPresenter() ; // 绑定 mPresenter.attach(this); initView() ; initData() ; } // 由子类去实现 public abstract P createPresenter(); public abstract void initData(); public abstract void initView(); public abstract void setContentView(); /** * 解绑 */ @Override public void onDestroy() { super.onDestroy(); mPresenter.detach(); } }

你可能感兴趣的:(MVP系列文章(二) - 优化attach()、detach()方法)