MVC开发模式和三层架构

MVC开发模式和三层架构

1、MVC(Model-View-Controller)开发模式:

首先让我们了解下MVC(Model-View-Controller)的概念:

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

1.Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,主要提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。主要使用的技术:数据模型:实体类(JavaBean),数据访问:JDBC,hibernate等,

2.View(视图):负责进行模型的展示,一般就是我们见到的用户界面,比如JSP,Html等

3.Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。主要使用的技术:servlet,Struts中的Action类等。

MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。

MVC开发模式示例图:

MVC开发模式和三层架构_第1张图片
Javaweb开发中:

  1. M:Model,模型。用JavaBean
    * 完成具体的业务操作,如:查询数据库,封装对象
  2. V:View,视图。用JSP
    * 展示数据
  3. C:Controller,控制器。用Servlet
    * 获取用户的输入
    * 调用模型
    * 将数据交给视图进行展示

优缺点:

  1. 优点:
    * 耦合性低,方便维护,可以利于分工协作
    * 重用性高
  2. 缺点:
    * 使得项目架构变得复杂,对开发人员要求高

2、三层架构(UI-BLL-DAL)思想介绍:

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表现层。

1.表现层(UI):通俗讲就是展现给用户的界面,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

2.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。也将业务逻辑层称为领域层。

3.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增、删、改、查。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。也称为是持久层。数据访问层中包含实体层(Model 实体层)

JavaWeb中典型的三层架构是:Jsp+Struts/spring+Hibernate的开发模式

三层架构示例图:

MVC开发模式和三层架构_第2张图片
1. 三层架构

  • 界面层: 和用户打交道的, 接收用户的请求参数, 显示处理结果的。(jsp ,html ,servlet)

  • 业务逻辑层: 接收了界面层传递的数据,计算逻辑,调用数据库,获取数据

  • 数据访问层: 就是访问数据库, 执行对数据的查询,修改,删除等等的。

2. 三层对应的包

  • 界面层: controller包 (servlet)

  • 业务逻辑层: service 包(XXXService类)

  • 数据访问层: dao包(XXXDao类)

3. 三层中类的交互

  • 用户使用界面层–> 业务逻辑层—>数据访问层(持久层)–>数据库(mysql)

4.三层对应的处理框架

  • 界面层—servlet—springmvc(框架)

  • 业务逻辑层—service类–spring(框架)

  • 数据访问层—dao类–mybatis(框架)

框架的理解

1. 框架是一个舞台, 一个模版

模版:

  • 规定了好一些条款,内容。

  • 加入自己的东西。

2.框架是一个模块

  • 框架中定义好了一些功能。这些功能是可用的。

  • 可以加入项目中自己的功能, 这些功能可以利用框架中写好的功能。

  • 框架是一个软件,半成品的软件,定义好了一些基础功能, 需要加入你的功能就是完整的。 基础功能是可重复使用的,可升级的。

    框架特点:

    • 框架一般不是全能的, 不能做所有事情

    • 框架是针对某一个领域有效。 特长在某一个方面,比如mybatis做数据库操作强,但是他不能做其它的。

    • 框架是一个软件

3、MVC和三层架构的区别与转化:

3.1 MVC与三层架构的概念区别:

  • MVC是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。它是根据项目的具体需求来决定是否适用于该项目。

  • 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。

  • 三层架构和MVC设计模式侧重点不一样,三层是一种笼统的架构思想,没有限制具体的设计;而MVC就比较具体的说明它的设计方法。我们从接手一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构。然后,在确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一些设计模式,比如是否应用我们的MVC模式,抽象工厂模式等等。

  • 三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。

3.2 MVC与三层架构的划分层次区别:

  • 三层架构将整个项目划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

  • MVC :即Model(模型),View(视图),Controller(控制)。

3.3 两者间的转化:

在我们项目中选择了三层架构的基础上再根据具体需求决定是否需要使用MVC,于是我们常说的MVC中总是伴随着三层架构,也就造成了两者的容易混淆。其实,通常MVC将三层架构中的UI分成了控制层和视图层。将三层架构中的数据访问层和业务逻辑层整合成了模型层。

你可能感兴趣的:(MyBatis)