层次
模型(Model) “数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。(比较:观察者模式(软件设计模式))
视图(View) 视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
控制器(Controller) 控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。
优点
在最初的JSP网页中,像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心地计划和不断的尝试。MVC从根本上强制性地将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它带给我们的好处是毋庸置疑的。
首先,多个视图能共享一个模型。如今,同一个Web应用程序会提供多种用户界面,例如用户希望既能够通过浏览器来收发电子邮件,还希望通过手机来访问电子邮箱,这就要求Web网站同时能提供Internet界面和WAP界面。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。
其次,控制器是自包含(self-contained)指高獨立內聚的物件,与模型和視圖保持相对独立,所以可以方便的改变应用程序的数据层和业务规则。例如,把数据库从MySQL移植到Oracle,或者把RDBMS数据源改变成LDAP数据源,只需改变控制器即可。一旦正确地实现了控制器,不管数据来自数据库还是LDAP服务器,视图都会正确地显示它们。由于MVC模式的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的少互扰性的构件。
此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型机型处理,然后选择适当的的视图将处理结果显示给用户。
分享到:
相关推荐
基于JavaScript MVC模式的Wiki设计与实现.pdf
OSNET-开源ASP.NET MVC CMS快速入门http://osnetcms.com/wiki/quickstart/源代码位于https://osnetcms.codeplex.com/SourceControl/latest
wiki-down 是一个基于 Markdown 的 wiki,基于 .NET 和 MongoDB。 可能有一些 NodeJS - 陪审团还在外面...... ###特征 一个内容存储 - 多个站点 一份 Markdown 文档 - 多种输出和格式 Markdown 在客户端和服务器...
欢迎来到 python-mvc-firebase wiki! 看看现场版! 这个 MVC 使用 Python 2.7 和 Flask 使用 Firebase! 它是一个 CRUD(创建读取更新删除)应用程序。 您必须安装 Flask! 应用中还使用了 Pythons-Firebase ...
DigiOz .NET Portal是一个免费的基于Web的门户CMS系统,使用C#的ASP.NET MVC 5编写,该系统使用Microsoft SQL数据库允许网站站长为商务或个人使用设置和自定义即时网站。 使用的技术列表:-ASP.NET MVC 5-Microsoft...
文档,请参阅Wiki模式-视图-控制器RxMVC支持使用RxSwift实现模型-视图-控制器模式,如下所示:(来自Wikipedia)不是这样的:(来自Apple的文档)我不知道原始定义是什么。 但是RxMVC是针对高清晰度的。 用法要运行...
看看WIKI开始吧! 查阅以了解有关CommandCore入门的更多信息! 发布变更日志 签出此页面以查看每个新发行版的更改: : 快速查看 如果您熟悉任何框架中的MVC模式,您将发现CommandCore非常熟悉它们。看看下面的内容...
一个用于JavaScript的简单的简约MVC框架。 利用路由,视图,模型,控制器,实体,观察者模式,双向绑定,Require.js和模板。 当前项目从VS 2013开始压缩。这是版本1,将经历多个阶段。 如果您有一个Adventure Works...
POP论坛 具有实时更新和多种语言的MVC论坛应用程序。 最新版本: : 有关最新信息和文档,请检查Wiki: : 此处演示: :
基于WIKI的课程交流系统包括四大模块:系统管理模块、课程管理模块、个人中心模块,协作交流管理模块。其中我负责总体设计及协作交流管理模块的设计开发 技术要求:1、采用MVC+DAO模式设计开发,其中的VO包主要处理...
如果您想更多地了解什么是 MVC 框架,请查看我们的 wiki 页面。 为什么是geeMVC? 因为它使用和学习非常简单。 因为不需要复杂的 XML 配置。 因为geeMVC 很容易扩展,而且大惊小怪。 因为它使用起来很有趣,可以让您...
java抢红包源码 ...MVC框架 Phalcon C语言编写,以PHP扩展的方式加载,比Yii Laravel性能更快, 单独说性能最好,还是鸟哥的Yaf 但是Yaf功能太过于简陋,很多组件需要自己写,易用性较差 综合而言,phalcon在
然后再通过公众号里面的菜单链接,进入公众号的商城,然后在里面完成购买和支付功能,我们可以看看官方对这个公众号支付的场景的解释,链接:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1,...
一个基于VS2005+XML 开发的快速,功能强大,简单的asp.net wiki引擎源码
带有Razor的ASP.NET MVC 5 Lucene.net搜索引擎 Creole,Media Wiki和Markdown语法支持 基于Bootstrap 3的UI。 支持SQL Server,SQL Server CE,SQL Azure(v1.6 +),Sqlite,MySQL,Postgres,MongoDB 它具有...
MvcReportViewer 这是一个库,可帮助您在ASP.NET MVC中呈现自定义服务器Report Viewer控件,而无需执行ASP.NET Webforms魔术。 我实际上正在使用SSRS ReportExecution API将报告呈现为HTML4.0格式并显示报告。 目前...
Wiki 创建一个新的service-framework项目 ###service-framework 适合你吗? service-framework 定位在 移动互联网后端 领域。 所以service-framework非常强调开发的高效性,其开发效率可以比肩Rails(不相信?可以...
如果您喜欢使用 MVC/MVVM 模式构建应用程序,并且喜欢 Excel 作为用户界面,但想要很少的 VBA 和更少的复杂嵌套公式,那么 ExcelMVC 正是您需要的... 有关如何开发 ExcelMVC 应用程序的详细说明,请访问 Wiki 页面。
基于netcore2.0 mvc开发的快速构建具有如下特色的后台管理系统最新版本已升级到aspnetcore3.1 特色: 用户管理 菜单管理 角色管理 权限管理[精确到按钮]) 代码生成器(一键生成CRUD前扩展代码增+删+改+查【分页】...
有关更多信息和文档,请参见Wiki! 最少的设置 为了使Famework随时可用,您必须执行以下简单步骤: 从下载最新版本的Famework,然后将该文件夹解压缩到Web服务器上的任何文件夹中。 在单独的文件夹中创建您自己的...