MVP模式(二)

在写完MVP模式(一)后,总觉得难以理解,并且感觉不应该在model层操作业务逻辑
下面同样以用户登陆为例,把model的业务实现交给Presenter操作

创建model

public class UserInfo {

    public String account;
    public String pwd;
}

创建view与model逻辑实现Presenter的接口

public class UserLoginApi {
  //view接收结果
    public interface View{
        void onLoginStar();
        void onLoginEnd();
        void onSuccess();
        void onFail();
    }
//model的逻辑实现,交给Presenter
    public interface Presenter {
        void login();
    }

}

创建Presenter实现登陆用户,并把结果返回给view

public class UserLoginPresenter implements UserLoginApi.Presenter {

    private UserLoginApi.View view;
    private UserInfo userInfo;

    public UserLoginPresenter(UserLoginApi.View view,UserInfo userInfo){
        this.view = view;
        this.userInfo = userInfo;
    }

    @Override
    public void login() {
        //模拟登陆
        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                view.onLoginStar();
                if (TextUtils.isEmpty(userInfo.account)||TextUtils.isEmpty(userInfo.pwd)){
                    return;
                }
                int i =new Random().nextInt(1);
                if (i==0){
                    view.onSuccess();
                    view.onLoginEnd();
                }else {
                    view.onFail();
                    view.onLoginEnd();
                }

            }
        },2000L);
    }
}

View层

public class LoginActivity extends Activity implements UserLoginApi.View{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        new UserLoginPresenter(this,new UserInfo()).login();
    }

    @Override
    public void onLoginStar() {

    }

    @Override
    public void onLoginEnd() {

    }

    @Override
    public void onSuccess() {

    }

    @Override
    public void onFail() {

    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,786评论 25 709
  • 前言 看了下上篇博客的发表时间到这篇博客,竟然过了11个月,罪过,罪过。这一年时间也是够折腾的,年初离职跳槽到鹅厂...
    西木柚子阅读 21,327评论 12 184
  • 转载至:http://www.jianshu.com/p/9a6845b26856 “Android MVP 详解...
    SnowDragonYY阅读 10,371评论 5 241
  • 心中热爱那个火火的姑娘, 你就是那朵带刺的红玫瑰花儿。 我喜爱你热情似火的个性, 喜爱你青春活力的张扬, 喜爱你清...
    粉色的桃林阅读 698评论 6 27
  • 打开岁月的风霜 泪在里面加了一点盐 雷在里面加了一点电 屏住呼吸 我们等待一场大戏开演 也许上帝还没有垂青我们 ...
    风中听秋吟的Man阅读 132评论 3 3