//视图基类
public interface BaseView<T> {
void setPresenter(T mpresenter);
}
//逻辑层基类
public interface BasePresenter {
void start();
}
//契约类
public interface UserInfoContract {
//UI 视图方法
interface View extends BaseView<IUserInfoPresenter>{
void showLoading();
void dismissLoading();
}
// 逻辑方法
interface IUserInfoPresenter extends BasePresenter{
void loadUserInfo();
}
}
以下是实现对象
//逻辑方法对象
public class UserPresenter implements UserInfoContract.IUserInfoPresenter {
private UserInfoContract.View userView;
public UserPresenter(UserInfoContract.View userView){
this.userView=userView;
userView.setPresenter(this);//设置接口方法
}
@Override
public void loadUserInfo() {
userView.showLoading();
}
@Override
public void start() {
}
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener ,UserInfoContract.View {
private UserInfoContract.IUserInfoPresenter presenter;
private UserPresenter userPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userPresenter=new UserPresenter(this);
presenter.loadUserInfo();
}
@Override
public void onClick(View view) {
}
//-------------------------------- 视图接口 ----------------------------------------
@Override
public void showLoading() {
System.out.println("---------------------------- showloading");
}
@Override
public void dismissLoading() {
System.out.println("---------------------------- dismissloading");
}
@Override
public void setPresenter(UserInfoContract.IUserInfoPresenter mpresenter) {
presenter=mpresenter;
}
}