1. 相关概念简介
在查找MVC的相关资料的时候经常看到的三个概念:设计模式 框架 架构。下面分别介绍一下这三个概念
架构:
软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
软件架构一般来说组织成视图,如同在建筑学中的不同种类的蓝图。一些可能的视图有:
功能/逻辑视图
代码视图
开发/结构视图
并行/过程/线程视图
物理/部署视图
用户动作/反馈视图
有许多为描述软件架构的语言被开发出来,但是关于应该采用什么样的符号集和视图系统还没有达成共识。一些人相信UML将创建一套软件架构视图的标准。
来源维基百科:
http://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84
框架:
通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。
简而言之,框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说就是使用别人搭好的舞台,你来做表演。
来源维基百科:
http://zh.wikipedia.org/wiki/%E8%BB%9F%E9%AB%94%E6%A1%86%E6%9E%B6
总结一下:就是能完成一定功能的半成品软件。在没有框架的时候,所有的工作都要乖乖的从零做起;有了框架,它为我们提供了一定的功能,就可以在框架的基础上做起,大大提高开发的效率和质量。
设计模式:
设计模式(Design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式特指软件“设计”层次上的问题。
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
面向对象设计模式通常以类型或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类型或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
2.MVC模式
三个概念的相关定义了解之后引出MVC的概念。
1. 概念:
1. 是一种设计模式,它强制性的将应用程序的输入,处理和输出分开。把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
2. 是软件系统的通用体系架构,一个复杂的架构模式。它的实现也显得复杂。但是已经通过多种设计模式结合在一起,使得MVC模式的实现变得相对简单易行。
3. 是用来帮助控应用系统中”变化”的一种设计模式。
2. 三个组件
将应用程序分为三个组件
(控制器Controller)- 负责转发请求,对请求进行处理。
(视图View) - 界面设计人员进行图形界面设计。
(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
3. 三个组件的交互
除了将应用程序划分为三种组件,模型 - 视图 - 控制器(MVC)设计定义它们之间的相互作用。
1. 模型(Model) 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。(比较:观察者模式(软件设计模式))
2. 视图(View)能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
3. 控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。
4. 目的
实现一种动态的程序设计,使后续对程序的修改和扩展化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观,软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应用的功能。
5. MVC与J2EE架构的对应关系
1. View:处于Web Tier或者说是Client Tier,通常是JSP/Servlet,即页面显示部分。
2. Controller:处于Web Tier,通常是Servlet来实现,即页面显示的逻辑部分实现。
3. Model:处于Middle Tier,通常用服务端的javaBean或者EJB实现,即业务逻辑部分的实现。
3.总结
在查找MVC相关资料的时候发现这个新的概念和自己以前接触到的概念有很大的联系,比如设计模式,然后在了解这个新的概念的时候就会去翻看这些以前已经接触的概念,然后对这些概念就会有更多一点的理解。