以下内容只是个人不成熟的见解,才疏学浅,惭愧。
1、三层架构
三层架构
是一种软件架构(software architecture)
,是一种分层结构。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构,它将整个业务应用从上到下划分为:表示层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。三层结构的出现的目的是为了解决B/S应用
的高内聚低耦合
。
表示层:又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是B/S信息系统中的Web浏览页面。主要功能是实现系统数据的传入与输出,将数据传送到业务逻辑层中进行数据处理,业务逻辑层处理后会将处理结果反馈到表示层中。
业务逻辑层:位于表示层与数据层中间位置,是表示层与数据层的桥梁,先对接收数据进行逻辑处理,再调用数据访问层实现数据的修改、获取、删除等功能,并将处理结果反馈到表示层中。
数据访问层:主要是对数据库的进行操作,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层,具体为业务逻辑层或表示层提供数据服务。
举个列子,在Java Web应用中,为了降低耦合度,在实际开发中,包命名结构就体现了分层结构。表现层
就对应于HTML页面
& Servlet
,业务逻辑层
对应于Service包
,数据访问层
对应于Dao包
。为了继续降低系统的耦合度,在实际项目分包中,还有一层Contrller包
,属于SpringMVC
,可以说是有点表现层
的意思吧。
其实,分层与MVX都是为将代码划分好各自的职能吧,避免耦合罢了,你也可以理解就是职能的划分,而不必纠结什么架构啊、什么模式吗。现在,一般都是前后端分离的了,后端项目代码大家一般都分层吧,各层有各层的职责。前端或者客户端现在的功能太丰富了,数据交互、数据更新太频繁了,所以一般都采用MVX模式解耦数据、划清职能。其实它的项目代码不是也分包吗,你也可以将Model
理解为Service
进行数据处理、View
就是控制前端html页面(或者安卓的xml)的数据显示与更新、Controller
还是作为控制器,作为Model
与View
之间的桥梁。
2、MVX架构模式
MVX
,就是Model
-View
-X(Controller、Presenter、ViewModel)
,就是MVC
、MVP
、MVVM
,它们是一种架构模式(架构风格)
,是GUI界面开发的指导模式,基于表现层
分离思想。主要是为了解决表现层
数据与显示分离的问题,尽可能把展示数据的View页面和业务代码分离。区别于
三层架构
,三层架构
是一种软件架构
,而MVX
是一种架构模式
。
软件架构
是一个系统的抽象,描述的是一个系统由哪些组件组成&#x