JavaWeb学习笔记 --MVC设计模式

MVC设计模式

什么是设计模式

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。

MVC基本思想

在我们实际开发的最后到产品上线,供给客户使用,客户通过浏览器或者app等进行数据的操作,实现这个的有,处理发送请求,业务逻辑处理以及访问数据库,这三个功能我们是可以放到一块使用的,但是如果放在一起,代码便会很臃肿,不利于维护,于是便出现了代码分层思想,把代码按照功能分为三层,即模型层(Model)、显示层(View)、控制层(Controller),这种代码的组织架构就叫MVC模式

MVC分层图
JavaWeb学习笔记 --MVC设计模式

Model(模型):

  • 是Web应用中用于处理数据逻辑的部分,包括Service层和Dao层;Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查,Dao层用于放各种接口,以备调用;

View(视图):

  • 是Web应用中处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图;通常视图是依据模型数据来创建的;

Controller(控制器):

  • 在Web应用中,简而言之,就是Servlet,或者SpringMVC框架中加了注解@Controller的方法(实际上一个方法就相当于一个对应的Servlet);

遵循MVC项目项目架构的项目目录图:

JavaWeb学习笔记 --MVC设计模式

阿里巴巴设计规范:

规范的项目结构能增加团队合作的效率,阿里巴巴对于web项目有明确的规范。

该图定义了Model层和Controller层的代码逻辑,实际上现在MVC的V已经从传统的项目架构中完美的剥离了,即前后端分离架构。

JavaWeb学习笔记 --MVC设计模式

  1. 【推荐】图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web 层,也可以直接依赖于 Service 层,依此类推:
  • 开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行网关安全控制、流量控制等。

  • 终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示等。

  • Web :主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。

  • Service :相对具体的业务逻辑服务层。

  • Manager :通用业务处理层,它有如下特征:

    • 对第三方平台封装的层,预处理返回结果及转化异常信息;

    • 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理;

    • 与 DAO 层交互,对多个 DAO 的组合复用。

  • DAO :数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。