首页 > 解决方案 > 在android的MVP设计模式中,我们将业务登录放在哪里?

问题描述

我有些困惑,应该在 Model 和 Presenter 之间放置业务登录。有的教程说模型持有业务登录,有的说模型只是 POJO。

标签: javaandroiddesign-patternskotlinandroid-mvp

解决方案


业务逻辑应该在Model. 应用程序逻辑应该在Presenter

例子:

public class MyActivity extends BaseActivity implements MyView {
    private MyPresenter mPresenter;

    @Override public onLoginResponse(LoginResultEntity entity) {
        // Handle login result
    }

    // Some where 
    mPresenter = new MyPresenter();
    mPresenter.attachView(this);
    mPresenter.login(loginResquestEntity);
}

public class MyPresenter extends BasePresenter<MyView>{
    public void login(LoginResquestEntity loginResquestEntity) {
        // Validate info ...
        ApiManager.getInstance().login(loginResquestEntity, new Callback() {
            @Override public onSuccess(LoginResultEntity entity) {
                mMvpView.onLoginResponse(entity)
            }

            @Override public onError(Throwable throwable) {
                mMvpView.onLoginResponse(null)
            }
        });
    }
}

interface MyView extends MvpView {
    void onLoginResponse(LoginResultEntity entity);
}

推荐阅读