MVC 全称Model View Controller 换成中文理解就是模型层、 视图层、 控制层
MVC模式是把项目编程分成三个层次
模型层 - 进行业务逻辑处理、数据请求。
视图层 - 数据展示。在layout.xml布局、自定义布局控件进行展示
控制层 - 把客户与视图层的交互操作指令集合,传递给模型层
我的理解核心全在这图
具体Android项目小功能演示:
简单例子-添加新用户:
编程思路:点击保存按钮, 获取EditText输入的用户名、密码,再调用后台接口去更改数据库表的记录,并根据接口返回状态去处理不同的结果,展示给用户看.
模式MVC编程整理:
1、客户与视图层交互,输入用户名、密码,并点击保存按钮。
2、控制层需要把用户信心发送到模型层。
3、模型层把用户信息进行业务逻辑操作,暴露接口返回处理好的数据
4、选择设计规定的视图层显示返回的数据
根据模式编程思路:
项目目录
1、点击事件,Android角度出发控制层可以看成是Activity
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//发送用户信息到模型层
}
});
2、模型层构建
public class UserModel implements UserGetIml{
@Override
public void getData(String name, String password, onAddComplectedListener listener) {
User user= new User(name, password);
if (listener != null) {
listener.success(user);
}
}
}
public interface UserGetIml {
void getData(String name, String password, onAddComplectedListener listener);
}
public interface onAddComplectedListener {
void success (User user);
}
3、视图层
userModel = new UserModel();
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//发送用户信息到模型层
userModel.getData(name, password
, new onAddComplectedListener() {
@Override
public void success(User user) {
//交给视图层显示
tv.setText(user.getName());
}
});
}
})
Android MVC弊端:
从上面代码大家就能看出原因, Activity 可以说又是扮演控制层又扮演视图层.并没有很好分割开。