在 android 的 MVP 设计模式中,我们在其中输入了业务登录



我有些困惑,我应该把业务登录放在模型和演示者之间的什么地方。一些教程说模型持有业务登录,一些说模型只是POJO。

将业务逻辑放在哪里令人困惑。它应该是模型的一部分。我在模型上创建了一个额外的层,称为对模型执行操作的服务,并且它具有处理模型的逻辑。因此,如果将来我从SQLite更改为Room DB或GreenDao ORM,只需更改有关此的查询,并且我的业务逻辑将保持不变。有些应用程序逻辑不同于应位于表示器中的业务逻辑。

业务逻辑应该在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);
}

MVP 设计模式中 Model 不是我们的 pojo 类,有时我们也称 Model 为存储库。

M-模型(存储库)

V-视图

P-演示者

在模型(存储库)中:- 它的句柄 API,数据库操作等

所以从现在开始,让我们调用 MODEL 作为存储库

相关内容

最新更新