mvc模型和mvc框架的区别

Spring中的新名称也太多了吧!IOC/DI/MVC/AOP/DAO/ORM...

对于刚刚接触spring的我来说确实晕了头!可是一但你完全掌握了一个概念,那么它就会死心塌地的为你服务了。这可比女人忠诚多了。

在这里我们来说侃下MVC吧!嗯!MVC设计模型和MVC框架之区别。

一组概念需要先理解,因为后面需要用:

  架构:简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用。

  框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系     统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。

  设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,它强调的是一个设计问题的解决方法。

首先来说说MVC设计模型:

1.定义:MVC 设计模型是一种使用 Model View Controller( 模型-视图-控制器)设计创建 Web 应用程序的模式。

  由上主谓宾可以很容易看出,mvc模型是一种用来写web应用程序的样式,也就是说只能写web不能写其它?

2.既然使用了 Model View Controller( 模型-视图-控制器),那么就很有必要来介绍一下该(模型-视图-控制器)到底是怎样的一个东西?

Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。

    通常模型对象负责在数据库中存取数据。

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

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

再来说说MVC框架:

1.MVC框架,它强制性的使应用程序输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

  由上可知,要使用MVC框架,则一定要遵守该框架的规则,它有它的强制性所在。聪明的读者一看就知道,它所使用的三个核心部件其实都是来自MVC模型。

  只不过在框架中让他们彼此更加独立了去处理各自的任务而已。

2.最典型的MVC就是JSP + servlet + javabean的模式。

3. 视图:视图是用户看到并与之交互的界面。视图主要有元素HTMLAdobe FlashXHTMLXML/XSL,WML等一些标识语言和Web services。

模型:模型表示企业数据和业务规则。

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

设计模型和框架的区别:(注意这里首先讨论的是总概念!)

先来看看网上给的区别,来自百度百科的:

在软件生产中有三种级别的重用:内部重用(即在同一应用中能公共使用的抽象块),代码重用(即将通用模块组合成库或工具集,以便在多个应用和领域都能使用),应用框架的重用(即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性)。

框架通常是代码重用,而设计模式是设计重用(?设计重用怎么来的?上下都没它的定义,百科垃圾就在这里。),架构则介于两者之间。

设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以 说,框架是软件,而设计模式是软件的知识。

百科的回答往往缺乏严谨,我在MBR lib网站中看到它们将软件重用分类为:产品重用/知识重用/环境重用

框架是代码重用,所以我们在使用框架的时候总是引入很多包。

框架是软件,而设计模式是软件的“知识”。所以模式是框架的基础。

再回到MVC这个小概念上来:

根据框架和设计模式的大概念,我们应该可以知道MVC框架和MVC设计模式区别的一二了。

以我的理解,觉得MVC设计模式更像设计师手中的图纸(图纸上的东西往往更抽象),而MVC框架则更像是工程师以设计师的图纸而建造的产品!

最终的产品也许比设计师原来的图纸有所出入,有些功能有所增强,有些又会适当的减弱,以此来更加适应大众的需求和体验!但是在整体上和本质上都是遵循设计师的构造的。

MVC设计模式就像建设房子的基础(地基设计+结构设计+强弱电设计+消防设计+etc),而MVC框架则可在此基础上根据需求构建的漂亮的成品房。

常见的框架和设计模型(注意这是大概念)

设计模式有哪些?

MVC、MTV、MVP、CBD、ORM等等;

框架有哪些?

C++语言的QT、MFC、gtk

Java语言的SSHSSI

php语言的 smarty(MVC模式)

python语言的django(MTV模式)等等;

引用: 框架+架构+设计模式;

时间: 2024-10-10 06:47:41

mvc模型和mvc框架的区别的相关文章

MVC模型和FishiGUI应用层的MVC模型

MVC概述: MVC (Modal View Controler)M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务. 视图是用户看到并与之交互的界面.对老式的We

Actor模型和CSP模型的区别

Akka/Erlang的actor模型与Go语言的协程Goroutine与通道Channel代表的CSP(Communicating Sequential Processes)模型有什么区别呢? 首先这两者都是并发模型的解决方案,我们看看其定义和实现方式: Actor模型描述了一组为了避免并发编程的常见问题的公理: 1.所有Actor状态是Actor本地的,外部无法访问. 2.Actor必须只有通过消息传递进行通信. 3.一个Actor可以响应消息:推出新Actor,改变其内部状态,或将消息发送

MVC模型和MVT模型

MVC是众所周知的模式:model(模型).view(视图).controller(控制器),其核心思想是分工.解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容.用户在页面输入url,转交给url控制器,然后根据url匹配相应的视图函数,viwe会去到models取数据,然后models在数据库中取得数据后返回给视图,视图把要展示的数据返回给模版,然后就输出到页面上. MTV,Django也是一个MVC框架,但是在Django中,控制器接受用户输入的部分由框架自行处理

Model模型和Module模块的区别

资料是从网上找的,具体是谁最先写的,不清楚了. Model通常是指模型.这个模型也许是你需求分析出来的, 也许是你算法做出来的. 不过最大可能是MVC的网站,或者是GUI开发模式中的M里的那个模型. 所以什么时候用Model取决于你要做什么.以前你打算花长时间做.如果做很短的项目可以不用Model.如果超过1天时间的项目,还是可以用Model的. 这时就要按你所使用的框架,设计你的MODEL. Module是指模块,这个概念最早是从结构化编程里来的. 简单说就是一个独立的python程序文件.可

比较一下Linux下的Epoll模型和select模型的区别

一. select 模型(apache的常用) 1. 最大并发数限制,因为一个进程所打开的 FD (文件描述符)是有限制的,由 FD_SETSIZE 设置,默认值是 1024/2048 ,因此 Select 模型的最大并发数就被相应限制了.自己改改这个 FD_SETSIZE ?想法虽好,可是先看看下面吧 … 2. 效率问题, select 每次调用都会线性扫描全部的 FD 集合,这样效率就会呈现线性下降,把 FD_SETSIZE 改大的后果就是,大家都慢慢来,什么?都超时了. 3. 内核 / 用

Spring MVC的各种参数绑定方式(请求参数用基础类型和包装类型的区别)(转)

1.基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" type="text"

【Java】Spring MVC 扩展和SSM框架整合

开发web项目通常很多地方需要使用ajax请求来完成相应的功能,比如表单交互或者是复杂的UI设计中数据的传递等等.对于返回结果,我们一般使用JSON对象来表示,那么Spring MVC中如何处理JSON对象? JSON对象的处理 使用@ResponseBody实现数据输出 要使用JSON,所以导一下JSON工具包.JSON工具包,密码4i0l. Controller层代码示例(这里使用的是阿里巴巴的 fastjson): 1 /** 2 * 判断注册时用户编码是否唯一 3 * @param re

MVC模式与三层架构的区别

之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合”的思想. 1.表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得.    2.业务逻辑层(BLL):针对具体问题的操作,也可

MVC – 5.MVC设计模式和.NetMVC框架

MVC模式-设计模式 ?控制器(Controller)- 负责转发请求,对请求进行处理. ?视图 (View) - 界面设计人员进行图形界面设计. ?模型 (Model)-业务逻辑.数据.验证规则.数据访问等等 MVC – 5.MVC设计模式和.NetMVC框架,码迷,mamicode.com