基于Retrofit+Rxjava2的MVP结构的网络库封装

一、前言

Retrofit目前火的不行,且与Rxjava可以完美配合,所以在此尝试将其进一步封装,代码实现不多,更多的是思考与探索。有兴趣可以看看这种架构模式。小弟学习阶段,大神路过欢迎指点。

二、先看封装后的调用

不浪费大家时间,看调用与开发是否方便。

  1. MainActivity:
 public class MainActivity extends AppCompatActivity implements LoginView {

    private LoginPresenter loginPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        loginPresenter = new LoginPresenter(this);
        loginPresenter.onResume();
        loginPresenter.login();
    }

    @Override
    public void onDataCallBack(User data) {
        //请求成功的数据
    }

    @Override
    public String getAccount() {
        return "123456";
    }

    @Override
    public String getPassword() {
        return "123456";
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        loginPresenter.onStop();
    }
}

2.LoginPresenter:

public class LoginPresenter extends Presenter {

    public LoginPresenter(LoginView view) {
        super(view);
    }

    /**
     * 登录
     */
    public void login() {
        Observable> data = RetrofitModule.getInstance()
                .getApiService()
                .login(view.getAccount(),view.getPassword());
        execute(data);
    }
}

3.LoginView:

public interface LoginView extends PresenterView {

    String getAccount();
    String getPassword();
}

Ok就这些,调用就是activity里那些逻辑 ,是否方便呢?
开发是写一个LoginPresenter 一个 Loginview是否方便呢?
稍后补充,框架结构。

你可能感兴趣的:(基于Retrofit+Rxjava2的MVP结构的网络库封装)