跳到主要内容

三层架构的优缺点

三层架构是怎么样的?

需要划分模块的时候,我们有个常用的变形:提取一个服务层出来,用来组合模块间的交互,还为业务逻辑层提供了一个防腐层,可以把记录日志、验证权限、处理异常等职责分配给服务层。

20220801112240

三层架构还有个更准确的名字:分层贫血领域模型架构

三层架构的设计的好处?

1、项目结构更清楚,分工更明确,有利于后期的维护和升级

2、上一层不用关心下一层的实现细节,上一层通过下一层提供的对外接口来使用其功能

3、大部分后端项目都遵循这个架构,基本上可以一招鲜的无缝迁移到其它项目中(标准化)

4、大量的项目方案,例如 Java 的 SpringBoot 大礼包,通过自动注入 与 Aop 等操作把各种与业务无关的细节屏蔽,让开发者只需要专注于三层的编写

5、整个业务模型其实是围绕着数据表结构展开的,能够通过自动化工具从数据表直接生成业务实体

三层架构的设计的缺点?

1、耦合仍然存在,业务发展到一定规模后业务逻辑层的代码会很杂乱,很难维护。(不方便拆分服务)

2、业务逻辑层依赖数据访问层,使得业务逻辑层不纯粹,数据库表对象的设计变动会反向影响到业务逻辑层的业务实体对象,进而涉及很多修改的地方。

3、因为整个业务模型都是围绕着表展开的,所以经常有主键外键之类的表关系需要处理,而这种复杂的表关系其实不利于后续的维护

References