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

一、前言

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

二、先看封装后的调用

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

  1. MainActivity:
 public class MainActivity extends AppCompatActivity implements LoginView<User> {

    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<LoginView> {

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

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

3.LoginView:

public interface LoginView<D> extends PresenterView<D> {

    String getAccount();
    String getPassword();
}

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容