JavaEE 对三层和MVC的理解

总结了自己在J2EE的学习中,对三层和MVC的理解,如有不对还请大家指正讨论交流。

首先,什么是三层结构:

JavaEE 对三层和MVC的理解_第1张图片

  1. 表示层:为用户提供交互操作界面 。
  2. 业务逻辑层:负责关键业务的处理和数据传递 。
  3. 数据访问层:实现数据库访问 。

其作用不难理解,举个饭店的例子:

  • 服务员只管接待客人
  • 厨师只管烹炒客人要的美食
  • 采购员只管按客人需求采购肉,海鲜,蔬菜
  • 他们各负其责共同协作为客人提供美食
    JavaEE 对三层和MVC的理解_第2张图片

三层数据传递方向:
JavaEE 对三层和MVC的理解_第3张图片

第二,什么是MVC:

项目中MVC模型:
JavaEE 对三层和MVC的理解_第4张图片
MVC中各个模块的职责:

  1. controller控制器:
    协调model和view的中间件。
    -从view拿数据给model。
    -model处理并控制DAO和数据库交互。
    -通过controller回馈给view显示告诉用户程序做了什么。
    view->controller->model->db
    db->model->controller->view

  2. model模型:劳动者
    -接受controller的指令。
    -告诉model做什么,controller要拿到什么。
    -通过自身功能实现和DAO去处理这个事情。
    -以最快最准确的方式完成controller交给的任务。

model就是一直和控制器controller和数据库DB交互的中间件,:里边拿最原始的材料,经过适当的加工成半成品,将这个半成品交给控制器controller,controller对半成品做适当的封装交给一线的view进一步完善并表现到前端。并且model有很多种,数据封装;核心算法、核心业务、关键操作;工具集等。

  1. view视图
    -负责从用户那里拿到controller想要获取到的数据
    -人机交互。

标准MVC模型:
JavaEE 对三层和MVC的理解_第5张图片

MVC的思想:

  1. 代码复用。
  2. 面向对象编程里最重要的思想是封装、继承、多态,归根到底应该是为了解决大型软件编写过程中代码维护和多人协作的难题。

三层与MVC:

相同之处:
JavaEE 对三层和MVC的理解_第6张图片

不同之处:
三层是整个应用程序架构,MVC是功能模块。

  • 三层是基于业务逻辑来分的,而MVC是基于页面来分的。
    -MVC模式是一种复合设计模式,一种解决方案。
    -三层是种软件架构,通过接口实现编程。
  • 三层模式是体系结构模式,MVC是设计模式。
  • 三层模式又可归于部署模式,MVC可归于表示模式。

二者使用范围不同:

  • 三层可以应用于任何语言、任何技术的应用程序【实现概念级:为了明确逻辑】 M
  • VC只是为了解决B/S应用程序视图层各部分的耦合关系【软件概念级:为了解耦】
  • 互不冲突,可以同时存在,也可根据情况使用其中一种。

你可能感兴趣的:(JavaEE 对三层和MVC的理解)