MVP 模式总结

本文介绍了MVP模式,作为MVC模式的改进版,旨在解决View层与逻辑层的耦合问题。通过一个登录界面的例子,详细阐述了MVP模式的构成:Model负责数据处理,View负责显示数据和用户交互,Presenter作为桥梁连接两者。文中还探讨了如何在实际开发中灵活运用MVP模式,包括多个Presenter的情况,并提出使用继承避免重复定义绑定和解绑视图的方法。
摘要由CSDN通过智能技术生成

前言

最近学习了 MVP 模式,趁着现在还印象深刻,赶紧写下这篇博客进行记录。这里需要特别提醒一点的是,MVP 应当理解成一种思想,无需局限于某一种实现方式或套路,每个人都可以有自己的 MVP 实现。废话不多说,现在开始进入正文吧!

为什么使用 MVP 模式

在介绍 MVP 之前,我们先来了解下 MVP 的前身——MVC。MVC 的全称是 Model-View-Controller,即 模型 - 视图 - 控制器 的关系。它们之间的关系图如下所示:

MVC
Model:业务模型层,JavaBean 实体类,用于保存实例数据。
View:视图层,程序的 UI 界面,用于向用户展示数据和接收输入的数据。
Controller:控制层,更新 UI 界面和数据实例。

下面举一个简单的例子说明 MVC 模式。
假设我们现在做一个登陆界面,用户输入账号密码之后,如果正确,就用 Toast 提示登陆成功,否则就用 Toast 提示登陆失败。

首先是 Model 层的 User 类,用于保存用户的用户名和密码信息:

public class User {
   
    
    private String name;
    
    private String pwd;
    
    public User(String name, String pwd){
   
        this.name = name;
        this.pwd = pwd;
    }

    public String getPwd() {
   
        return pwd;
    }

    public String getName() {
   
        return name;
    }
}

接下来是 MainActivity 的实现:

public class MainActivity extends AppCompatActivity {
   

	// 用户名输入
    private EditText mNameEdit;

	// 用户密码输入
    private EditText mPwdEdit;

	// 登陆按钮
    private Button mButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mNameEdit = (EditText)findViewById(R.id.edit_username);
        mPwdEdit = (EditText)findViewById(R.id.edit_pwd);
        mButton = (Button)findViewById(R.id.btn_login);
        mButton.setOnClickListener(new View.OnClickListener() {
   
            @Override
            public void onClick(View v) {
   
                User user = new User(mNameEdit.getText().toString(), mPwdEdit.getText().toString());
                login(user);
            }
        });
    }

    private void 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值