设计模式学习—MVC模式(MVC Design Pattern)
来源:互联网 发布:婚礼礼服 知乎 编辑:程序博客网 时间:2024/06/07 01:31
一、我的理解
MVC的设计模式普遍应用与Web开发,图形化界面开发等。将应用分层,每层各司其职。全称时Model-View-Controller模式,其中Model负责数据读取和处理,View负责将拿到的数据展示,而Controller负责协调两者工作,或者可以看作一个中介,它负责Model和View的通信。MVC设计模式的大概思想是分层思想,但是具体实现时情况较为复杂,有各种各样的实现方式,也有各种各样的理解。比如有人认为M和V之间的通信全部交给Controller作为中转,而另一部分人认为M和V之间也会有通信。以下是一篇介绍MVC和MVP等的区别的博客,但当博主看了下边的评论后,也对此产生了疑问。本文中的MVC模式代码参考自菜鸟教程—设计模式—MVC模式。
博客链接:MVC、MVP和MVVM的图示
二、实现方式
Model类和View类均提供调用接口,Controller类调用这些接口来获取数据和操作两者执行不同的操作。
三、实例
Java实例
Student类:模型类
package com.study.dp.mvc;public class Student { private String rollNo; private String name; public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public String getName() { return name; } public void setName(String name) { this.name = name; }}StudentView类:视图类
package com.study.dp.mvc;public class StudentView { public void printStudentDetails(String studentName, String studentRollNo) { System.out.println("Student: "); System.out.println("Name: "+studentName); System.out.println("Roll No: "+studentRollNo); } }StudentController类:控制器类
package com.study.dp.mvc;public class StudentController { private Student model; private StudentView view; public StudentController(Student model, StudentView view) { super(); this.model = model; this.view = view; } public void setStudentName(String name) { model.setName(name); } public String getStudentName() { return model.getName(); } public void setStudentRollNo(String rollNo) { model.setRollNo(rollNo); } public String getStudentRollNo() { return model.getRollNo(); } public void updateView() { view.printStudentDetails(model.getName(), model.getRollNo()); } }Demo类:测试
package com.study.dp.mvc;public class Demo { public static void main(String[] args) { // 从数据可获取学生记录 Student model = retriveStudentFromDatabase(); // 创建一个视图:把学生信息输出到控制台 StudentView view = new StudentView(); StudentController controller = new StudentController(model, view); controller.updateView(); // 更新模型数据 controller.setStudentName("John"); controller.updateView(); } private static Student retriveStudentFromDatabase() { Student student = new Student(); student.setName("Robert"); student.setRollNo("10"); return student; } }
四、应用场景
阅读全文
0 0
- 设计模式学习—MVC模式(MVC Design Pattern)
- MVC设计模式学习
- 设计模式学习—外观模式(Facade Design Pattern)
- 设计模式学习—适配器模式(Adapter Design Pattern)
- 设计模式学习—享元模式(Flyweight Design Pattern)
- 设计模式学习—代理模式(Proxy Design Pattern)
- 设计模式学习—迭代器模式(Iterator Design Pattern)
- 设计模式学习—中介者模式(Mediator Design Pattern)
- 设计模式学习—备忘录模式(Memento Design Pattern)
- 设计模式学习—观察者模式(Observer Design Pattern)
- 设计模式学习—状态模式(State Design Pattern)
- 设计模式学习—策略模式(Strategy Design Pattern)
- 设计模式学习—模板模式(Template Design Pattern)
- 设计模式学习—访问者模式(Visitor Design Pattern)
- Java MVC Pattern(MVC 模式)
- Design pattern设计模式
- Design Pattern, 设计模式
- 设计模式(Design Pattern)
- MYSQL中SQL语句查询表字段名、注释、字段类型
- XenApp_XenDesktop_7.6实战篇之七:License Server规划及部署
- XenApp_XenDesktop_7.6实战篇之八:申请及导入许可证
- XenApp_XenDesktop_7.6实战篇之九:SQL Server数据库服务器规划及部署
- XenApp_XenDesktop_7.6实战篇之十:Delivery Controller的部署
- 设计模式学习—MVC模式(MVC Design Pattern)
- [FAQ09288][Audio Profile]如何分别配置卡1卡2的默认铃声
- XenApp_XenDesktop_7.6实战篇之十一:站点设置
- [C++] effective_C++_条款05
- XenServer 6.5实战系列之十二:License Management
- XenApp_XenDesktop_7.6实战篇之十二:组策略配置
- Skype For Business Server 2015
- XenApp_XenDesktop_7.6实战篇之十三:安装Virtual Delivery Agent For Windows Desktop OS
- Active Directory证书服务的安装与配置