Tuesday, 20 August 2019

MVP Design Pattern


The mvp pattern separates the data model from view through presenter
This arch improves the testability of apps


0-package


  • MainActivity implements SigninView{
  • Private SigninPresenter signinPresenter;

     Oncreate()
    signinPresenter= new SigninPresenter(MainActivity.this)
    signinPresenter.signIn(“raja”,”raja”);

    void showValidationError()
    Log.e("validation","validation");
    void signinsuccess()
    Log.e("success","success");
    void signingError();
    Log.e("failure","failure");


    }

    --------------------------------

    View-package


    1.Interface SigninView{

    void showValidationError();
    void signinsuccess();
    void signingError();

    }

    Presenter-package

    2.interface SigninPresenter{
    void signIn(String username, String password);
    }


    Model-package

    3.class SigninPresenterImpl implements  SigninPresenter{
    private SigninView signinView;

    4.SigninPresenterImpl(SigninView signinView)
    this.signinView=signinView;

    @Override
    5.void signIn(String username, String password){

    if(TextUtils.isEmpty("username") || TextUtils.isEmpty("password")){
        signinView.showValidationError()

    }else{
        if(userName.equalIqnorecase("raja") && password.equalIqnorecase("raja")){
            signinView.signinsuccess()
        } else{
            signinView.signinerror()
        }
    }

    }