设计模式笔记——MVC模式
来源:互联网 发布:mysql开启binlog日志 编辑:程序博客网 时间:2024/06/16 10:02
看到HR桌面上的几份简历,我总能看到MVC的身影,但为什么都喜欢把这东西往简历上贴呢,它真的有那么厉害吗?可能小弟我造诣实在太低了,在实际项目中基本没用过这东西,哪怕用了也不知道吧。
这玩意是个什么鬼,其实我也知道个大概,有人说是设计模式,也有人说是框架,但我更偏向于设计模式。据我的了解,设计模式是为了代码重用而设计的模式,而框架是为了模块重用而搭建,也可以说是轮子,直接用或者扩展。
好了,模式也好,框架也好,其实也没必要深究,说到底还是为了开发的效率而已,那么MVC究竟是如何运作呢,尽管小项目用不到,还是沉淀沉淀下吧,少年~
Model模型,View视图和Controller控制器,三者的结合就成了MVC。
首先,建立一个Student类作为模型:
Student.java
public class Student {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
View.java
public class View {public void show(int what){System.out.println(what);}public void show(String what){System.out.println(what);}}
最后,通过控制器来获取学生信息,并将信息展示到视图上:
Controller.java
public class Controller {Student student;View v;public Controller(Student student, View v){this.student=student;this.v=v;}public int getStudentId(){return student.getId();}public String getStudentName(){return student.getName();}public void printStudentInfo(){v.show(getStudentId());v.show(getStudentName());}}
写个运行类测试下:
PatternTest.java
public class PatternTest {public static void main(String[] args) {// TODO Auto-generated method stubStudent student=new Student();student.setId(2015);student.setName("Samuel");View view=new View();Controller controller=new Controller(student, view);controller.printStudentInfo();}}
实际上控制器类(Controller)是通过模型(Model)和视图(View)两个实例进行初始化的,也就是控制器持有模型和视图的句柄,即控制权,通过控制器类来控制从数据库建模,到将模型数据输出到视图,这样一来就降低了模型和视图的耦合性,当更改模型数据时,只需要在控制器添加相应的业务就行了,并不需要更改视图,从而增强了视图的复用性。
比如,在模型里给Student增加一个年龄age属性,那么我只需要在Controller的printStudentInfo函数中增加v.show(getStudentAge())业务即可,并不需要修改视图。
作为一个Android开发者,若非得从小项目里挖个MVC实例出来,个人认为,ListView的显示也勉强算是个的MVC模式了吧。List<Map<String, Object>>存放了一个个模型,而ListView则作为显示的视图,继承其适配器类BaseAdapter并编写需要如何显示,显示式样等业务,充当着Controller的角色。当List<Map<String, Object>>里的模型数据发生变化时,Adapter调用notifyDataSetChange()函数则可以更新视图。
- 设计模式笔记——MVC模式
- MVC设计模式笔记
- 设计模式——MVC模式
- Dot Net设计模式—MVC模式
- Dot Net设计模式—MVC模式
- Dot Net设计模式—MVC模式
- .net 设计模式—MVC模式
- 设计模式——MVC
- 设计模式——MVC
- 设计模式——MVC
- 复合设计模式—MVC
- 复合设计模式—MVC
- HeadFirst 设计模式学习笔记14——MVC分析
- HeadFirst 设计模式学习笔记10——MVC分析
- COCOA设计模式——MVC(笔记整理)
- MVC设计模式---小笔记
- 设计模式学习笔记--MVC模式
- 【学习笔记】设计模式-MVC模式
- CentOS 7安装odoo 9.0
- 查看进程所占内存/proc/[pid]/statm踩坑记
- 如何安装DedeCMS V5.7
- 全新 RAD Studio 10.1 Berlin – 您期盼的软件开发工具中文手冊已经上市
- 上传文件
- 设计模式笔记——MVC模式
- tinyos学习笔记13--PppRouter组件关系图
- zabbix-rpm包安装
- cocos2dx scene的理解
- tomcat 内存溢出
- Leetcode no. 18
- 400行代码实现行为树(基于cocos2dx框架下)
- iOS设置Label上显示不同字体大小
- 关于webview的常识