Dagger使用整理:https://blog.csdn.net/ahou2468/article/details/103952052
MVP使用整理:https://blog.csdn.net/ahou2468/article/details/103975635
MVP-模型-视图-表现层(Presenter):Presenter相当于Model和View通信的桥梁,控制着程序的全部逻辑,在Presenter将View和Model对象注入到Presenter;
Dagger:是一个依赖注入框架,Dagger负责实现View和Model注入到Presenter;
目录
a.将会生成Dagger创建Model的工厂方法:(依赖注入提供方)
b.将会生成Dagger创建实现Component的接口的方法:(依赖注入具体消费方)
c.在Activity/Fragment中调用Component接口的实现类,实现绑定操作
1.MVP实现
1.1定义Presenter和View接口
Presenter:实现具体的控制逻辑,定义View调用Presenter通信的方法;
View:定义了Presenter和View的通信方法,Presenter调用实现的View中的方法通知更新UI;
public interface SplashContract {
interface Presenter {
void getSplash(String deviceId);
}
interface View {
void updateUI();
}
}
1.2Presenter实现
实现Presenter接口,通过@Inject标示需要注入View和相关Model;
public class SplashPresenter implements SplashContract.Presenter{
private SplashContract.View view;
private ApiService apiService;
@Inject
public SplashPresenter(SplashContract.View view, ApiService apiService) {
this.view = view;
this.apiService = apiService;
Logger.d("apppp:"+apiService);
}
@Override
public void getSplash(String deviceId ) {
String client = "android";
String version = "1.3.0";
Long time = TimeUtil.getCurrentSeconds();
apiService.getSplash(client,version,time,deviceId)
......;
}
}
1.3实现View
实现View接口,通过@Inject标示要创建Presenter对象;
public class SplashActivity extends BaseActivity implements SplashContract.View, EasyPermissions.PermissionCallbacks {
@Inject
SplashPresenter presenter;
}
调用
presenter.getSplash(deviceId);