MVC与三层架构

MVC模式

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC将应用程序分成三个核心部件:

  • M:Model 模型
    主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型 与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
  • V:View 视图
    用户与之交互的界面、在web中视图一般由jsp,html组成
  • C:Controller 控制器
    接收来自界面的请求 并交给模型进行数据处理后展示到视图,或者直接由视图展示。 在这个过程中控制器不做任何处理只是起到了一个连接的作用

它属于设计模式的范畴,就如同其他设计模式一样,模式的出现就是为了对某种功能的优化,而MVC模式可以看做是对三层架构中的表现层的一种细分优化
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易

主要功能

模型(JavaBean):业务逻辑操作,比如封装数据,处理业务数据(调用数据库)

视图(JSP):展示数据

控制器(Servlet):获取客户端的输入,调用模型,查询数据获取数据,将数据交给视图展示

MVC与三层架构_第1张图片

优点:
  1. 耦合度低,三者各司其职,方便维护,利于分工。
  2. 重用性高
缺点:
  1. 使得项目架构变得复杂,对开发人员要求高

三层架构

  • 数据访问层(dao/mapper)

    对数据库的CRUD基本操作,操作数据存储文件

  • 业务逻辑层(service)

    对业务逻辑进行封装,组合数据访问层中的基本功能,形成复杂的业务逻辑功能,处理业务逻辑

  • 表现层(controller)

    接收请求,封装数据,调用业务逻辑层,响应数据,用户看的界面,用户可以用过界面上的组件和服务器进行交互
    MVC与三层架构_第2张图片

MVC与三层架构的关系

MVC并不等同于三层架构,MVC只是三层架构中web层/界面层中的一种框架。而三层架构是一种设计模式

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

你可能感兴趣的:(Java,mvc,架构,servlet)