什么是MVC框架?

1、什么是mvc

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

mvc就是类似三层的一种架构,主要采用封装(分层)的思想,来降低耦合度,从而使我们的系统更灵活,扩展性更好。

model是应用程序中用于处理数据逻辑的部分。通常模型对象负责在数据库中存取数据。

view是应用程序中处理数据显示的部分。通常视图是依据数据模型创建的。

controller是应用程序中处理数据交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送。

2、mvc的优点

(1)多个视图共享一个模型,大大提高代码的可重用性。

(2)三个模块相互独立,改变其中一个不会影响其他两,所以依据这种设计模式能构建良好的松耦合性的组件。

(3)控制器提高了应用程序的灵活性和可控制性。控制器可以用来连接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提高强有力的手段。

3、mvc的缺点

(1)增加了系统结构和实现的复杂性。

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

(2)视图与控制器过于紧密的连接。

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

(3)视图对模型数据的低效率访问。

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

(4)目前,一些高级的界面工具或构造器不支持mvc。

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

综上,对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使你的软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC框架时会花费一定的工作量,但从长远角度看,它会大大提高后期软件开发的效率。所以我们在具体适用时,要综合考虑其适用范围,

4、框架vs设计模式

(1)框架通常是代码重用,而设计模式是设计重用,

  架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

  在软件生产中有三种级别的重用:

  内部重用,即在同一应用中能公共使用的抽象块;

  代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;

  应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

(2)设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象。

  框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示。

  设计模式是比框架更小的元素。一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。

  可以说,框架是软件,而设计模式是软件的知识。

(3)简而言之:框架是大智慧,用来对软件设计进行分工; 设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

5、总结

通过MVC的学习,我们要知道它是用来分割页面和数据库访问的框架,降低了两者的耦合度,同时通过Controller的控制,也使系统更加的灵活,使我们的代码更健壮,复用性更强,但是凡事都有他适用的范围,我们不能觉得它好,就敢三七二十一的瞎用,有时可能会适得其反,因此MVC的学习还需要我们以后慢慢探讨。

参考文献:

  http://blog.csdn.net/u010168160/article/details/43150049

时间: 2024-10-15 07:18:54

什么是MVC框架?的相关文章

使用Intellij Idea自定义MVC框架

今天我学习了自定义一个简单的MVC框架,这个我们首先要知道什么是MVC框架! MVC框架: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 我们今天自己定义的

Java MVC框架性能比较

- by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框架的项目访问速度,明显不如原来采用了struts1框架的项目快,带着这些疑惑,我对各类MVC框架的做了一个简单的性能分析比较,其结果应该说是基本符合预期的,可供大家参考. 测试环境:CPU:酷睿2 T5750,内存:DDR2-667 2G,Web容器:Tomcat6.0,最大线程数设置为1000,操作系统:WinXP-sp3 测

MVC框架中的值提供(一)

在MVC框架中action方法中的Model数据的绑定的来源有很多个,可能是http请求中的get参数或是post提交的表单数据,会是json字符串或是路径中的相关数据;MVC框架中针对这些不同的数据来源抽象了IValueProvider接口; public interface IValueProvider { bool ContainsPrefix(string prefix); ValueProviderResult GetValue(string key); } IValueProvide

搭建基于spring MVC框架 + RESTful架构风格技术总结

实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的访问. 用RESTful架构的创建步骤: 1.创建一个全新的Web工程 2.导包,导入所需要的所有第三方jar包.(springMVC+Hibernate的基本包是必须的) 3.作配置,针对不同的项目需求和不同的搭建设计,开发人员可以按照自己的编码风格来设计符合项目开发具体 应该用多少篇配置文件.但是这几篇配置文件是必不可少的: 3-1.web.xml配置文件:最基本的配

关于 mvc框架

M model(模型) 处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据. 模型是应用程序的主体部分. 模型代表了业务数据和业务逻辑: 当数据发生改变时,它要负责通知视图部分:一个模型能为多个视图提供数据.由于同一个模型可以被多个视图重用,所以提高了应用的可重用性. V view(视图) 通常视图是依据模型数据创建的.视图是用户看到并与之交互的界面.视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理.视图可以向模型查询业务状态,但不能改变模型.视图还

Spring MVC 框架搭建及详解

一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.commons-logging.jar.cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar.hibernate-jpa-2.0-api-1.0.1.Final.jar.antlr-2.7.6.jar.commons-collections-3

开发自己的PHP MVC框架(一)

这个教程能够使大家掌握用mvc模式开发php应用的基本概念.此教程分为三个部分.如今这篇是第一部分. 如今市面上有非常多流行的框架供大家使用.可是我们也能够自己动手开发一个mvc框架.採用mvc模式能够大大降低我们开发应用的时间,并且能够更好的组织项目源码,并且当中的某些模块还可在其他项目中使用.如今我要教大家写一个简单的mvc框架.因为这个项目非常easy,轻量.所以可能并非最佳实践,也不具备安全性.还须要大家在实际应用中完好. 所用技术:php,面向对象开发方法. 開始 首先在站点根文件夹下

ASP.NET MVC框架下添加菜单栏及分页项目

原创声明:本文为作者原创,转载请注明出处:http://www.cnblogs.com/DrizzleWorm/p/7274866.html ,谢谢! 我是做前端开发的,之前用C#的三层架构(UI.BLL.DAL)做过一个网站,这是我第一次接触ASP.NET MVC框架,首先给大家分享别人整理的ASP.NET MVC框架的一组教程:http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html内容很齐全,我是在先看了其他

8 -- 深入使用Spring -- 7...2 MVC框架与Spring整合的思考

8.7.2 MVC 框架与Spring整合的思考 对于一个基于B/S架构的JAVA EE 应用而言,用户请求总是向MVC框架的控制器请求,而当控制器拦截到用户请求后,必须调用业务逻辑组件来处理用户请求.此时有一个问题:控制器应该如何获得业务逻辑组件? 最容易想到的策略是,直接通过new 关键字创建业务逻辑组件,然后调用业务逻辑组件的方法,根据业务逻辑方法的返回值确定结果. 在实际的应用中,很少见到采用上面的访问策略,因为这是一种非常差的策略.不这样做至少有如下三个原因: ⊙ 控制器直接创建业务逻

030.自定义的MVC框架

.LOG自定义的MVC框架 M: Model模型V: View 视图C: Controller 控制器 ASP.Net 1. Web窗体编程2. Mvc编程 IHttpHandler任何处理web请求的类必须实现此接口void ProcessRequest(HttpContext context)bool IsReuseable{get;} 使用IHttpHandler实现登录与注册1.新建UserHandelr:IHttpHandler接口2.web.config配置,处理 /user.do请