引言
了解什么是系统架构,及解决什么问题
掌握三层架构及MVC
了解三层架构与MVC的区别
什么是系统架构
系统架构网上的描述一大堆,看得人云里雾里,特别对新人非常的不友好。就我做架构师这么多年的经验来说,系统架构无非就是网络架构及代码架构。
为什么需要系统架构?
我十几年前从事编程那会,没有什么系统架构的说法,系统架构是随着系统的功能越来越庞大,复杂度越来越高、耦合度越来越高,才开始慢慢流行的。
系统的业务复杂度往往高于技术复杂度,导致系统复杂度越来越不可控
系统的业务复杂程度的一般分层
简单业务:只开启一个事务
普通业务:开启三个事务
复杂业务:开启七个事务
多张表之间的依赖关系、强关联,导致系统的耦合度提高
什么是网络架构
系统架构发展历程
什么是代码架构
代码架构实际上就是代码规范
系统网络架构的目的是为了解决系统模块之间的耦合性
代码结构是为了解决代码之间的耦合性
代码的一般规范:
每个类只做一件事情
每个方法只做一件事情
什么是三层架构
三层架构是指:视图层 View、服务层 Service,与持久 层 DAO。它们分别完成不同的功能。
为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层
的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合。
三层架构接口实现
什么是 MVC 模式
MVC,即 Model 模型、View 视图,及 Controller 控制器
View:视图,为用户提供使用界面,与用户直接进行交互。
Model:模型,承载数据,并对用户提交请求进行计算的模块。
其分为两类,一类称为数据承载 Bean,一类称为业务处理Bean。所谓数据承载 Bean 是指实体类,专门用户承载业务数据的,如 Student、User 等。而业务处理 Bean 则是指Service 或 Dao 对象, 专门用于处理用户提交请求的。
Controller:控制器,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。
MVC 架构程序的工作流程
用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理Model 处理后,将处理结果再交给 ControllerController 在接到处理结果后,根据处理结果找到要作为向客户端发回的响应 View 页面。页面经渲染(数据填充)后,再发送给客户端。
MVC 架构程序的工作流程
三层架构与MVC的区别
三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。 比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。
MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。 MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。
三层架构与MVC的相同点
三层架构与MVC的相同点