package com.team.zhuoke.base;
import android.content.Context;
import rx.Subscription;
import rx.subscriptions.CompositeSubscription;
/**
* 作者:gaoyin
* 电话:18810474975
* 邮箱:18810474975@163.com
* 版本号:1.0
* 类描述:
* 1.获取绑定View实例传递到子类中进行调用!
*
* 2.注销View实例
*
* 3.创建 Model 实例
*
* 4.注销Model实例
*
* 5.通过RxJava进行绑定activity和fragment生命周期绑定
*
* 备注消息:
* 修改时间:2016/11/8 下午5:07
**/
public class BasePresenter<V extends BaseView,M extends BaseModel> implements Presenter<V,M> {
protected Context mContext;
protected V mView;
protected M mModel;
protected CompositeSubscription mCompositeSubscription;
protected void unSubscribe() {
if (mCompositeSubscription != null) {
mCompositeSubscription.unsubscribe();
}
}
protected void addSubscribe(Subscription subscription) {
if (mCompositeSubscription == null) {
mCompositeSubscription = new CompositeSubscription();
}
mCompositeSubscription.add(subscription);
}
// 获取绑定View实例
@Override
public void attachView(V view) {
this.mView=view;
}
// 获取绑定Model层实例
@Override
public void attachModel(M m) {
this.mModel=m;
}
public M getModel() {
return mModel;
}
// 注销mModel实例
@Override
public void detachModel() {
this.mModel=null;
}
// 注销View实例
@Override
public void detachView() {
this.mView=null;
unSubscribe();
}
public V getView() {
return mView;
}
public boolean isViewBind()
{
return mView!=null;
}
}