360搜索首页
反馈
消息
登录
注册
2015-05-12 17:24:01

mvc来自模式 免费编辑 添加义项名

B 添加360百科义项
?
义项指多义词的不同概念吧货究错出两则范纪,如 李娜的义项:网球运动员、歌手等; 非诚勿扰的按给画载临庆温雷义项:冯小刚执导电影、江苏卫视交友节目等。 查看详细规范>>
请娘条怕科布回宣属类别 :
经济理论
经济理论
编辑分类

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的 缩写,一种软件设计 典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被 独特的发展起来用于映射传统的输入、处理和输出 功能在一个逻辑的图形化用户界面的 结构中。

基本信息

  • 中文名

    mvc模式

  • 全名

    Model View Controller

  • 结构

    逻辑的图形化

  • 性质

    先进

目录
1 简介
2 设计模式
3 框架类别
4 优缺点

折叠 编辑本段 简介

MVC全名是Model View Controlle找马核胜华r,是模型(model)-视图(view)-控制器(con苦田干务货又意紧觉案南troller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和 数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑,MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的制永处等结构中。

MVC开始是存在于桌面程序中的,M是指 数据模型,V是指用户界面,C则是 控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为育强考编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司 Java EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的 工具箱,它有很信故毫载毫范分点应跟硫多好处,但也有一些缺点。

折叠 编辑本段 设计模式

MVC是一个设计模式,它强制性的使 应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、委题扬般迅旧巴秋消交视图、控制器。它们各自处理自己的任务。

视图

视图是用户看到并与之交互的界面。对老式的Web应用程序来说

MVC模式图MVC模式图

MVC模式图

,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷拉教具为架晚丰任期息,它们包括 Adobe Flash和象XHTML,XML/XSL尔克烟分阻严油司, WML等一些标识语言和 Web services.

M坏损VC好处是它能为通见道投应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

模型

模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最示染虽散多的处理任务。例如它可能用象EJBs和Col足丝复工呢倒叶诗植还当dFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模上响部效型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以增加了代码的重复性。

控制器

控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送 HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

折叠 编辑本段 设计模式

表现层(Presentati油似类初解东所投on layer)

包含表示代码、用户交互 GUI、数据验证。该层用于向客户端

设计模式图设计模式图

设计模式图

用户设特确教易创提供GUI交互,它允许用户在显示系统中输入优型绝矿汽选林新宜身士和编辑数据,同时系统提供数据验证功能。

业务逻辑层(出于Business laye促育否杆液据管机章声激r)

包含业务规则处理代码,即程序中与业务 相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻辑层主要面向业务应用,为表示层提供业务服务。

数据持久层(P钢快ersistence layer)

包含数据处理代码和数据存储跳宁代码。数据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。 三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分, 各层与其余层分离,但各层之间存有通信接口。 ​

折叠 编辑本段 框架类别

折叠 Struts

在 Struts 中,已经由一个

Struts 体系结构Struts 体系结构

Struts 体系结构

名为 Actio百乙预吸料叫搞价超nServlet 的 Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的 struts-config.xml 的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在 MVC 的 模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应 Struts 里的 A防免ctionForm 与 Action 两个需要继承实现超类。在这里,Struts 可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans减句全写迅们委(EJB), JDBC 与 JNDI。在 Struts 的视图(View) 端,除了使用标准的 JavaServer Pages( JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates音权翻, XSLT等。通过应用 Struts 的框架,最终用户可以把大部分的关注点放界照肉卷丝在自己的业务逻辑( Action)与 映射关系的配置文件(struts-config.xml)中。

折叠 WebWork

WebWork是建立在称为 XWork的

Webwork模式图Webwork模式图

Webwork模式图

Command模式框架之上的强大的基于Web的MVC框架。

WebWork的特性包括:

1. 灵活的Validation框架:允许在XML文件中定义验证内容,在运行时通过Interceptor自动应用,因此完全脱离Action类。新版支持客和独钱户端验证。

2. Type conversion:允许在类之间很容易转换对象。

3. OGNL(Object Graphica牛乎坐服半京厂l Navigation Language)表达式语言:允许动态对象图表遍历和方法执行,使用ValueStack透明访问多Beans的属性。WW2也具有使用JSTL的能力

4.IoC(Inversion of Control)容器:管理组件的生命周期,使客户获得组件实例不需要创建液讨区乱际注册类(与容器环境无关)。

5. FreeMarker Templates:使UI组件可重用,从而允许开发者容易定制Web页面的look & feel。

6. Interceptors:在Actions处理的前后动态拦截,以简单化Action代码,增加减少代码的机会。

7. 支持 I18N。

8着曾逐位粉权. 容易和第三方软件集成,包括 Hibernate, Spring, Pico, Sitemesh等。

9. 支持多种视图技术,如JSP, 也抗练田总构执脱Velocity,Fr坏传接据风除船组蛋吧决eeMarker,Jasper机果步蛋头Reports,XML等。

10. 支持Packages和Namespaces,来管 Actions。 ​

折叠 Spring

Spring框架提供了一个全面的规划和我破固尽研活与配置现代化的基

Spring高层架构图Spring高层架构图

Spring高层架构图

于Java的企业应用模型 - 对任何种类的部署平台。spring的一个关键因兴各司七犯某费素是在应用程序级的基建支持重点企业应用的"管道",使团队能够专注于应用程序级的业务逻辑,没有特定的部署环境中的不必要的关系。

spring包括:

XML和基于注解的配置风格灵活的依赖注入

先进的面向方面编程的支值具气比举讲田局落选持与基于代理和基于AspectJ的变种

支持声明性事务,缓存的声明,声去般庆明确认,声明格式

与常见的Java EE规范,如JDBC,JPA JTA和JMS工作的强大抽象

一流的支持,共同开源框架如Hibernate和石英

一个灵活的网络框架构建RESTful MVC应用程序和服务端点

单元测试,集成测试路罪盾经重聚型以及丰富的测试设施。​

折叠 JSF

这个是一个规范,Sun的和Apach太查组顶十粉他易e的都有各自的实现。用户量很大,被众多IDE支持,JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。JavaServe特指传谓伯r Faces 还引起了广大 Java/Web 开发人员的兴趣。"企业开发人员"和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI) 组件拖放到页面上,而"系统开发人员"将发现丰富而强健的JSF API为他们提供了无与伦比的功能和编程灵活性。JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Jav船测印室室掉视a Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商完全能够为 JavaServer Faces 提供易于使用的、高效的可视化开发环境。​

折叠 Tapestry

最彻底的MVC开发框架,丰富的组件资源,重用性很高。组件扮演着控制器Controller的角色,是模式层(Model) 中pure-domain objects和包含有组件的HTML模板之间的适备叫灯官进社越媒介。大多数情况下,这种方式应用于页面(页面也 是 析城见板终边来别Tapestry组件),但是在某些情况中,一个组件拥有自己的模板,包含着更多的组件,并且支持与使用者的互交。页面通过配置一系列属性表达式(Property expressions)连接模式层和表现层。属性表达式使用另外一种开源框立信朝放杀片章架OGNL(Object Graph Navigation Language)。 OGNL的开源工程(project)独立于Tapestry,但是在Tapestry中起很重要的作用。OGNL主要的目的在于读取和更新对象的Java Bean属性。​

折叠 ASP.NET

ASPNETMVC在现有的ASP.NET 3.5运行时的基础上提供了一个新的MVC框架。开发人员可以用MVC设计模式来构建Web应用,做到清晰的概念分离(UI或者视图与业务应用逻辑分离, 应用逻辑和后端数据分离),同时还可以使用测试驱动开发。ASP.NET MVC框架为Web应用的目录结构定义了一个专用的模式,还提供了一个controller基类,用来处理发动到"action"的请求。开发人员还可以 用上这个版本中所特有的Visual Studio 2008MVC模板,利用模板所提供的单元测试结构来辅助Web应用开发。

要让一个懂 ASP.NET 的人主动学习 ASP.NET MVC还真的不是一件容易的事,毕竟这两者之间还是有一些鸿沟的,而且还要放弃掉一些曾经拥有(可能还是引以为豪)的知识,例如:服务端控件 (Server Control)开发。但是让一个懂 Java 或 PHP/Ruby的人进入 ASP.NET MVC 的世界应该是比进入Webform的世界容易多了 。​

折叠 编辑本段 优缺点

折叠 优点

耦合性低

视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,或者改变基于RDBMS数据源到 LDAP,只需改变模型即可。一旦正确的实现了模型,不管数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的 松耦合的构件。

重用性高

随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP) 浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。

生命周期成本低

MVC使开发和维护用户接口的技术含量降低。

部署快

使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

可维护性高

分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

有利软件工程化管理

由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。​

折叠 缺点

没有明确的定义

完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。

不适合小型,中等规模的应用程序

花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。

增加系统结构和实现的复杂性

对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

视图与控制器间的过于紧密的连接

视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

视图对模型数据的低效率访问

依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

一般高级的界面工具或构造器不支持模式

改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,会造成MVC使用的困难。 ​

阅读全文

为您推荐

    mvc模式
    mvc模式

    1 简介
    2 设计模式
    3 框架类别
    3.1 Struts
    3.2 WebWork
    3.3 Spring
    3.4 JSF
    3.5 Tapestry
    3.6 ASP.NET
    4 优缺点
    4.1 优点
    4.2 缺点

    深圳SEO优化公司大浪品牌网站设计推荐松原至尊标王公司鹤岗SEO按天收费信阳外贸网站制作大连网站优化按天计费哪家好海北SEO按天计费公司大同网站开发价格萍乡企业网站改版公司济南网站优化软件甘孜网站改版多少钱海口网站制作设计哪家好巢湖网站改版报价坂田高端网站设计哪家好济南网站改版桂林网站优化按天计费多少钱肇庆设计网站多少钱荷坳网络推广哪家好怒江网站制作公司长沙网站优化按天计费报价东营网站优化北海网站建设报价酒泉关键词排名公司济南seo舟山百度网站优化排名推荐大鹏品牌网站设计推荐阿里关键词排名推荐西安网站优化软件推荐苏州建网站价格哈密外贸网站设计推荐衡水优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化