分层架构

分层架构是一种常见的软件设计模式,通过将程序分为表现层、应用层、领域层和基础设施层来降低复杂度。本文详细介绍了分层架构的概念、优缺点以及四层架构的具体分工,强调了关注点分离、单一职责、高内聚和低耦合的原则。四层架构中,表现层负责用户交互,应用层定义业务功能,领域层实现业务逻辑,基础设施层提供技术支持。分层架构虽有开发成本高、性能损耗和扩展性低的缺点,但能提高代码的可复用性和维护性。
摘要由CSDN通过智能技术生成

最近在项目设计时采用了领域驱动设计,在观摩《领域驱动设计》这本书时提到了layered architecture这个单词,也就是分层体系架构,觉得自己有必要对此分层架构进行一次系统的复习,记录下来以备后用

什么是分层架构?

按照字面意思理解,即将程序分成多层的一种架构模式。那需要分成几层合适呢?Eric Evans建议分为四层,分别对应表现层,应用层,领域层以及基础设施层。而最基本的是分层架构是三层,即表现层,领域层和数据持久层。


三层架构

名称 用途
表现层 复杂向用户显示信息和解释用户指令,用户可以是使用界面的人,也可以时另一台计算机
领域层 负责表达业务概念,业务状态信息以及业务规则,是整个系统的核心层
数据持久层 为领域层提供持久化服务,提供数据的查询和存储

四层架构

名称 用途
表现层 与三层架构中表现层一致
应用层 定义软件要完成的任务,并且指挥表达领域概念的对象来解决问题,应用层要尽量简单,不包含业务规则,只为下一层的领域对象协调任务,分配工作
领域层 与三层架构中领域层一致
基础设施层 为上面各层提供通用化技术,为表现层绘制屏幕组件,为应用层传递消息,为领域层持久化对象

上述分层架构可以按照需要多分几层,但是分层体系架构需要遵循每层中的任何元素都仅依赖于本层的其他元素或者其下层的元素,向上通讯必须经过间接的传递机制进行。

从书上截取的一个关于网上转账的四层架构案例:
注意:负责处理业务的是领域层,而不是应用层

分层架构的优劣

分层架构的目的是通过关注点分离来降低系统的复杂度,同时满足单一职责、高内聚、低耦合、提高可复用性和降低维护成本。

  • 单一职责:每一层只负责一个职责,职责边界清晰,如持久层只负责数据查询和存储,领域层只负责处理业务逻辑。

  • 高内聚:分层是把相同的职责放在同一个层中,所有业务逻辑内聚在领域层。这样做有什么好处呢?试想一下假如业务逻辑分散在每一层,修改功能需要去各层修改,测试业务逻辑需要测试所有层的代码,这样增加了整个软件的复杂度和测试难度。

  • 低耦合:依赖关系非常简单,上层只能依赖于下层,没有循环依赖。

  • 可复用:某项能力可以复用给多个业务流程。比如持久层提供按照还款状态查询信用卡的服务,既可以给申请信用卡做判断使用,也可以给展示未还款信用卡使用。

  • 易维护:面对变更容易修改。把所有对外接口都放在对外接口层,一旦外部依赖的接口被修改,只需要改这个层的代码即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值