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模式)等等;

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

 
 

mvc设计模式和mvc框架的区别的更多相关文章

  1. struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架

    今天我用Ecipse搭建Struts框架,并且使用Struts框架编写一个最简单的例子,相信读者能够很容易的明白. Struts是当今Java比较流行的三大框架之一,三大框架是Struts,sprin ...

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

    MVC模式-设计模式 •控制器(Controller)- 负责转发请求,对请求进行处理. •视图 (View) - 界面设计人员进行图形界面设计. •模型 (Model)-业务逻辑.数据.验证规则.数 ...

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

    MVC模式-设计模式 •控制器(Controller)- 负责转发请求,对请求进行处理. •视图 (View) - 界面设计人员进行图形界面设计. •模型 (Model)-业务逻辑.数据.验证规则.数 ...

  4. javaweb三大框架和MVC设计模式

    javaweb三大框架和MVC设计模式 转载,原文请见https://blog.csdn.net/sunpeng19960715/article/details/50890705 一.MVC设计模式 ...

  5. 转载 javaweb三大框架和MVC设计模式 (自己加拉些内容)

    javaweb三大框架和MVC设计模式 一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基 ...

  6. 浅谈javaweb三大框架和MVC设计模式

    一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(Vie ...

  7. 一步步搭建自己的轻量级MVCphp框架-(一)什么是PHP框架以及MVC设计模式

    PHP框架 php框架对很多新手而言可能会觉得很难攀越,其实不然 ,只要知道一个框架的流程,明白原理了,基本类似框架都可以看懂,php框架真正的发展要从php5开始了,其实php4时代就有一些框架,但 ...

  8. 请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别

      请求转发:MVC设计模式.细节.请求域属性的编程实例.请求重定向和请求转发的区别 MVC设计模式将一次请求的响应过程分成三个功能模块(一般称之为层)来协同完成,这三个模块分别是Model(模型层) ...

  9. 基于MVC设计模式的Web应用框架:struts2的简单搭建(一)

    Struts2的初步介绍 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站.虽然之前存在了很大的安全漏洞,在2013年让苹果.中国移动.中国联 ...

随机推荐

  1. thinking in object pool

    1.背景 对象池为了避免频繁创建耗时或耗资源的大对象,事先在对象池中创建好一定数量的大对象,然后尽量复用对象池中的对象,用户用完大对象之后放回对象池. 2.问题 目前纵观主流语言的实现方式无外乎3个步 ...

  2. aspcms常见问题解决方案

    1.产品详细页读取多张产品图片(栏目类型:产品){aspcms:cimages count=16 contentid=[content:id]}<li onmouseover="sho ...

  3. 用户控件的设计要点 System.Windows.Forms.UserControl

    用户控件的设计要点 最近的项目中有一个瀑布图(彩图)的功能,就是把空间和时间上的点量值以图的形式呈现出来,如下图: X坐标为空间,水平方向的一个像素代表一个空间单位(例如50米) Y坐标为时间,垂直方 ...

  4. PHP 常用获取路径代码

    <? //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERE ...

  5. C# 实现字符串去重

    方法一 注:需要.net 3.5框架的支持 string s = "101,102,103,104,105,101,102,103,104,105,106,107,101,108" ...

  6. Java程序性能优化Tip

    本博客是阅读<java time and space performance tips>这本小书后整理的读书笔记性质博客,增加了几个测试代码,代码可以在此下载:java时空间性能优化测试代 ...

  7. HttpListenerCS客户端监听http

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. webkit事件处理

    1,概述 原文地址:http://blog.csdn.net/awebkit/article/details/8493716 浏览器处理事件一般有两个过程,捕获过程和冒泡过程,这是由addEventL ...

  9. BIEE安装文件下载地址

    Repository Creation Utility 下载地址 http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/ ...

  10. smartjs 0.2发布 - 新增oop模块&AOP增强

    SmartJS2.0发布,更新内容如下: 新增oop(klass,factory)模块: promiseEvent加入非阻塞模式noBlock: trigger加入属性监听; smartjs主模块优化 ...