MVC体系结构模式将一个交互式系统分为三个组件。模型包含核心功能和数据。视图向用户显示信息。控制器处理用户输入。视图和控制器共同构成了用户接口。变更传播机制保证了用户接口和模型之间的一致性。其实,订阅者模式也可以有此保证。
1. 例子
一个简单的政治选举系统。
2. 语境
具有灵活的人机接口的交互式系统。
3. 问题
功能和数据保持稳定,但是用户接口经常发生更改。
1) 相同的信息在不同的窗口有不同的显示。
2) 实时性,对数据的操作要能够实时的反映到各个显示。
3) 用户接口易于更改,而且可能在运行期更改。
4) 对用户接口的更改不影响程序内核。
4. 解决方案
1) 模型封装了程序核心的数据和功能,独立于视图和控制器;(也可以理解为一种微内核结构)
2) 视图和控制器将用户的操作转化为对对核心数据(功能)的读取和更改;
3) 一个模型可能对应多个视图;
4) 一个视图对模型的更改,模型要及时通知给所有的视图。
5. 结构
模型组件包含了应用程序的功能内核,封装了功能和数据的接口,供视图调用,访问;
变更传播机制:视图向模型注册,如果模型发生更改,模型通过此注册通知视图,实现变更传播机制。
视图组件向用户显示信息,视图向模型注册来实现更改传播机制。
控制器接收用户的输入,将用户的输入转化为对视图的调用。
6. 动态特性
7. 实现
1) 分离出核心功能。将核心功能和数据从用户输入输出中分离出来,并对外提供给视图访问接口。
2) 实现变更传播机制。可以采用订阅者模式。
3) 设计并实现视图。设计视图的外观,设计对控制器的接口。
4) 设计并实现控制器。
5) 创建动态视图。
8. 效果
优点:
1) 同一模型多视图;
2) 同步化视图。(变更传播机制)
3) 可插入的视图和控制器。
4) 框架潜力。
不足:
1) 增加了复杂度;
2) 潜在的过多的更新因素。
3) 视图和控制器的紧密连接。
4) 视图控制器与模型的紧密耦合。
5) 视图中数据访问的低效率。
分享到:
相关推荐
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的...
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。...
#资源达人分享计划#
采用MVC(模型-视图-控制器)构架的一个简单程序
OS6开发指南视频-源码ppt:视图控制器与导航模式 通过本章的学习你已经可以判断你的应用是不是需要一个导航功能,并且知道在什么情况下选择平铺页面导航、标签导航、树形结构导航中的哪一种或者同时综合使用三种导航...
一种软件架构模式,把软件系统分为三个基本部分模型(Model),视图(View),控制器(Controller) 用户通过 使用 控制器来 操作 模型 ,模型负责 更新 视图中的内容,用户通过 检视 视图来发现这种改变 MVC并非一...
目前大多数企业采用J2EE技术的结构设计与解决方案。对于我们学习和研究J2EE体系结构来说,了解与掌握J2EE体系... 一、J2EE的模型-视图-控制(MVC)体系结构 模型-视图-控制结构是交互式应用程序广泛使用的一种体系
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View...
组成部分Model、View、ViewModel,程序=数据结构+算法。Model就是数据结构,ViewModel实现算法数据处理,View实现数据展现。 View:UI界面 ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的...
GeoQuiz-模型-视图-控制器-05
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View...
技术博客 使用模型-视图-控制器结构的完整堆栈站点
漏洞-模型-视图-控制器框架示例 先决条件 Open-JDK / Oracle-JDK-1.9或更高版本 apt-get install openjdk-9-jdk Maven 3或更高 apt-get安装maven 漏洞MVC 生成并运行 导出环境变量 export JAVA_HOME=/path/to/jdk ...
SimpleCURDwithMVC 使用模型 - 视图 - 控制器设计模式的简单 Java CURD 操作通过将 MVC 用于保险系统来简化 CURD 系统。
matlab开发-模型视图控制模式使用指南。修改了一个带有uicontrols的简单指南来演示MVC在matlab中的应用。
MySQL SQL高级特性 字段约束-索引-视图-外键学习实践,很不错
mvc-项目 基于模型-视图-控制器的项目
一个PHP框架,用于使用MVC(模型-视图-控制器)设计模式构建Web应用程序。 执照 该项目为开源项目,可根据。 作者 约翰·罗宾逊( Robin 要求 PHP> = 7.2.0 JSON PHP扩展 PDO PHP扩展(可选,取决于使用的功能) ...
MySQL高级特性字段约束-索引-视图-外键学习实践PDF文档;
旅行社-Java-EE- 一个基于 Web 的应用程序,它使用 MVC 实现(模型-视图-控制器),旨在让用户只需点击几下即可连接到应用程序并预订他们的座位或房间。前端受到损害,因为后端工作更多在这个项目中很重要。 该...