mvp架构

简介: mvp架构

mvp架构


MVPHelper插件的使用

(320条消息) MVPHelper更新日志 --- 新增常规分包模式_mvp怎么分包合理_三精-大精wing的博客-CSDN博客


实例


1.LoginContractor 将三个接口合并为一个


public interface LoginContract {
    interface Model {
        void login(String name, String psw, LoginPresenter loginPresenter);
    }
    interface View {
        void shouToast(String msg);
        void onSuccess();
        String getName();
        String getPassword();
    }
    interface Presenter {
        void onSuccess();//登陆成功
        void onFailure(String msg);//登陆失败
    }
}

2.LoginModel 对数据进行校验 进行业务逻辑判断


public class LoginModel implements LoginContract.Model {
    @Override
    public void login(String name, String psw, LoginPresenter loginPresenter) {
        if (name.equals("123") && psw.equals("123")) {
            loginPresenter.onSuccess();
        } else {
            loginPresenter.onFailure("用户名或密码错误");
        }
    }
}

3.View 实现数据的获取


public class MainActivity extends AppCompatActivity implements LoginContract.View{
    EditText name;
    EditText password;
    Button login;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
    private void initView() {
        name = findViewById(R.id.name);
        password=findViewById(R.id.password);
        login=findViewById(R.id.login);
        login.setOnClickListener(v -> {
            LoginPresenter presenter = new LoginPresenter();
            presenter.setView(this);
            LoginContract.Model model = new LoginModel();
            model.login(getName(), getPassword(), presenter);
        });
    }
    @Override
    public void shouToast(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onSuccess() {
        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
    }
    @Override
    public String getName() {
        return name.getText().toString();
    }
    @Override
    public String getPassword() {
        return password.getText().toString();
    }
}

4 LoginPresenter 持有view


public class LoginPresenter implements LoginContract.Presenter {
    LoginModel model;
    LoginContract.View view;
    public void setView(LoginContract.View view) {
        this.view = view;
    }
    @Override
    public void onSuccess() {
        view.onSuccess();
    }
    @Override
    public void onFailure(String msg) {
        view.shouToast(msg);
    }
}

(318条消息) android学习笔记-MVP实例_android mvp 实例_有希N的博客-CSDN博客

(320条消息) Android 使用MVPHelper工具生成,MVPDemo模拟登录演示_WL-鬼的博客-CSDN博客

目录
相关文章
|
2月前
|
设计模式 存储 前端开发
MVVM、MVC、MVP三种常见软件架构设计模式的区别
MVC、MVP 和 MVVM 是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
74 12
|
3月前
|
设计模式 前端开发 Android开发
Android应用开发中的MVP架构模式解析
【5月更文挑战第25天】本文深入探讨了在Android应用开发中广泛采用的一种设计模式——Model-View-Presenter (MVP)。文章首先概述了MVP架构的基本概念和组件,接着分析了它与传统MVC模式的区别,并详细阐述了如何在实际开发中实现MVP架构。最后,通过一个具体案例,展示了MVP架构如何提高代码的可维护性和可测试性,以及它给开发者带来的其他潜在好处。
|
3月前
|
存储 前端开发 Java
Android应用开发中的MVP架构模式实践
【5月更文挑战第5天】随着移动应用开发的复杂性增加,传统的MVC(Model-View-Controller)架构在应对大型项目时显得笨重且不灵活。本文将探讨一种更适应现代Android应用开发的架构模式——MVP(Model-View-Presenter),并展示如何在Android项目中实现该模式以提升代码的可维护性和可测试性。通过对比分析MVP与传统MVC的差异,以及提供一个实际案例,读者将能深入了解MVP的优势和实施步骤。
|
3月前
|
前端开发 测试技术 数据处理
安卓开发中的MVP架构模式深度解析
【4月更文挑战第30天】在移动应用开发领域,模型-视图-呈现器(Model-View-Presenter, MVP)是一种广泛采用的架构模式。它旨在通过解耦组件间的直接交互来提高代码的可维护性和可测试性。本文将深入探讨MVP在安卓开发中的应用,揭示其如何促进代码的模块化,提升用户界面的响应性,并简化单元测试过程。我们将从理论概念出发,逐步过渡到实践案例,为读者提供一套行之有效的MVP实施策略。
|
3月前
|
XML 前端开发 测试技术
安卓架构模式:MVC、MVP、MVVM及更多
【4月更文挑战第13天】本文探讨了安卓应用开发中的常见架构模式,包括MVC、MVP和MVVM,以及VIPER和Clean Architecture。MVC分离关注点,易于理解,但安卓不直接支持。MVP通过呈现器实现更清晰的分层和便于单元测试。MVVM利用数据绑定简化UI逻辑,适合声明式编程。开发者应根据项目需求、团队技能和维护周期选择合适架构,随着工具和框架的进步,未来将提供更多模块化、可测试性和敏捷性的解决方案。
161 7
|
3月前
|
消息中间件 存储 缓存
大厂MVP技术JAVA架构师培养
这是一个很强悍的架构师涨薪计划课程,课程由专家级MVP讲师进行教学,分为是一个章节进行分解式面试及讲解,不仅仅是面试,更像是一个专业的架构师研讨会课程。课程内容从数据结构与算法、Spring Framwork、JVM原理、 JUC并发编程、消息队列、存储、缓存与搜索、服务治理与分布式、云原生、业务场景与项目架构设计等业务场景,进行全方位的讨论与指导,非常有提升性。
37 0
|
3月前
|
设计模式 存储 前端开发
【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
【1月更文挑战第13天】【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
|
存储 SQL 前端开发
借一个项目谈Android应用软件架构,你还在套用MVP 或MVVM吗
借一个项目谈Android应用软件架构,你还在套用MVP 或MVVM吗
|
存储 缓存 前端开发
“无架构”和“MVP”都救不了业务代码,MVVM能力挽狂澜?(二)(下)
“无架构”和“MVP”都救不了业务代码,MVVM能力挽狂澜?(二)
87 0
|
3天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。