美文网首页
关于MVP架构在Android上的应用

关于MVP架构在Android上的应用

作者: Mezereon | 来源:发表于2016-08-03 20:48 被阅读0次

    最近研究了一下android开发的一些框架,对于开发整体上具有一定好处,对于拓展测试修改也具有一定的优势。


    Model:用于数据的增删改查等,也包括一些数据对象
    View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。
    Presenter:是View跟Model的“中间人”,接收View的请求后,从Model获取数据交给View。
    下面自己尝试进行一个简单的mvp框架的编写
    首先是一个登陆画面
    Model层:

          public interface  IModel {            //一个接口
          boolean login(String id,String pwd);  //返回登陆是否成功的一个函数
          }
    

    具体的Model代码实现

    public class Model implements IModel{
    @Override
    public booleanlogin(String id, String pwd) {
    if(id.equals("xp")&&pwd.equals("saber")){
    return true;
    }else{
    return false;
    }
    }
    }
    

    Presenter层:

    public interfaceIPresenter {
    void    onCreate();//在Activity Create的时候顺便调用
    boolean  performOnClick(String id,String pwd); //按钮点击后的一个perform
    }
    

    具体实现

    public class Presenter implements IPresenter {
    private IMainActivity  mainActivity;
    private IModel   model;
    public Presenter(IMainActivity mainActivity){
    this.mainActivity=mainActivity;
    this.model=newModel() ;
    }
    @Override
    public void  onCreate() {
    }
    @Override
    public boolean  performOnClick(String id, String pwd) {
    if(model.login(id,pwd)){
    return true;
    }
    return false;
    }
    }
    

    View层:

    public interface IMainActivity {
    }
    public class MainActivity extends AppCompatActivity implements IMainActivity{
    private Button button;
    private EditText idEditText;
    private EditText pwdEditText;
    private IPresenter presenter;
    @Override
    protected voidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
    presenter=newPresenter(this);
    presenter.onCreate();
    button.setOnClickListener(newView.OnClickListener() {
    @Override
    public voidonClick(View view) {
    if(presenter.performOnClick(idEditText.getText().toString(),pwdEditText.getText().toString())){
    Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();
    }else{
    Toast.makeText(MainActivity.this,"fail", Toast.LENGTH_SHORT).show();
    }
    }
    });
    }
    public voidinit(){
    button= (Button) findViewById(R.id.button);
    idEditText= (EditText) findViewById(R.id.idEditText);
    pwdEditText= (EditText) findViewById(R.id.pwdEditText);
    }
    }
    

    以上就是一个简单的登陆mvp架构的实现

    相关文章

      网友评论

          本文标题:关于MVP架构在Android上的应用

          本文链接:https://www.haomeiwen.com/subject/vbxcsttx.html