Android MVP模式之(一)初识
来源:互联网 发布:苹果手机恢复软件 编辑:程序博客网 时间:2024/05/17 02:36
MVP浅谈
说到MVP模式,在这里不得不提到MVC模式,我们来看看两者的区别
**MVC** M:基本bean(java bean)V:View以及子类C:Activity、Fragment以及子类**MVP**M:数据层(数据库、文件、网络等等...)V:UI层(View、Activity、Fragment以及它们子类)P:中介(MVP设计目的:为了将UI层和数据层进行解耦和),通过P层进行关联
在开发中其实对于两者的区别深有体会,例如使用MVC模式,在开发进行一般的时候,突然新加了几个人手要加快进度,这个时候,我们会发现其实对于现有的功能已经不好去让新来的接收,模块耦合度太高,但是对于MVP来说,数据和view的分块,使得这样对于开发者来说是很好去维护的;
model
//这里主要做数据和逻辑上的处理public class LoginModel { public String login(String username, String password) { if (username.equals("123")&&password.equals("123")){ return "登录成功"; } return "登录失败"; };}
view
//这里主要是view、界面上的通知,将model操作完成后的结果通知给界面public interface LoginView { void toastResult(String result);}
presenter
//presenter的作用就是讲model和view分离,使得模块高内聚、低耦合public class LoginPresenter { private LoginView loginView; private LoginModel loginModel; public LoginPresenter(LoginView loginView) { this.loginView = loginView; this.loginModel = new LoginModel(); } public void login(String username, String Password){ String result = loginModel.login(username, Password); loginView.toastResult(result); }}
主界面
public class MainActivity extends AppCompatActivity implements View.OnClickListener, LoginView { private LoginPresenter presenter; private EditText et_username; private EditText et_password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_username = (EditText) findViewById(R.id.et_username); et_password = (EditText) findViewById(R.id.et_password); Button bt_login = (Button) findViewById(R.id.bt_login); bt_login.setOnClickListener(this); presenter = new LoginPresenter(this); //获取presenter来操作model和view模块 } @Override public void onClick(View view) { String username = et_username.getText().toString().trim(); String passwrod = et_password.getText().toString().trim(); presenter.login(username,passwrod); //调用这里的方法,然后在login中调用model的登录判断 } @Override public void toastResult(String result) { //登录成功后,通过调用view回调登录结果 Toast.makeText(this,result,Toast.LENGTH_SHORT).show(); }}
阅读全文
0 0
- Android MVP模式之(一)初识
- Android开发之初识MVP模式
- Android 设计模式之 MVP(一)
- 初识Android MVP模式
- android之MVP模式(一)
- Android 初识mvp设计模式
- Android-BaseLine框架初识之MVP模式最佳方案(三)
- android中MVP模式(一)
- Android---MVP设计模式初级(一)
- android中MVP模式(一)
- android中MVP模式(一)
- android中MVP模式(一)
- 打造Android MVP模式(一)
- android中MVP模式(一)
- Android之MVP模式
- Android 之MVP模式
- 初识android设计模式—MVP
- Android开发模式之--MVP设计模式一
- hashcode(),equals()方法分析
- 欢迎使用CSDN-markdown编辑器
- JAVA中JSP的会话跟踪(一)
- 大数据预科班4
- mysql 存储过程与事件
- Android MVP模式之(一)初识
- 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(Python实现)
- 自定义模型中,有时候新增的字段会报以下的错误:
- day07
- LintCode 1.A + B 问题
- ubuntu14.04下安装kinect2驱动及ROS接口(搬运)
- 大数据预科班5
- 生成随机数
- 生成函数-背包问题学习笔记