为什么要用impl继承service层_软件系统的分层,有效降低层与层之间的依赖

本文探讨了软件系统分层的重要性,解释了三层架构的常见问题及其对依赖性的错误理解。通过引用《企业应用架构模式》和《实现领域驱动设计》,介绍了四层架构,强调了领域层的独立性和依赖倒置原则。文章指出,正确应用依赖倒置原则可以降低层间耦合,提高系统灵活性,并总结了各层的职责,尤其是应用层在服务编排中的作用。
摘要由CSDN通过智能技术生成

在分解复杂的软件系统时,架构师和程序员用得最多的技术之一就是分层。个人学习开发的时候,软件系统大多数是三层架构,也就是大家非常熟悉的表现层、领域层(业务层)、数据源层。随着互联网的发展,智能手机普及手机应用越来越多,原本PC端的系统要开始往移动端应用转,那不能从头到尾再开发一套,而后就开始有了微服务架构,然而微服务离不开领域驱动设计,现在大多数开始使用上了四层架构,基础层、用户接口层、应用层、领域层(业务层)。

今天分享内容是软件系统的分层,如何降低层与层之间的依赖。


01 分层的好处与弊端

《企业应用架构模式》里面这样讲到:“当用分层的观点来考虑系统时,可以将各个子系统想像成按照 “多层蛋糕” 的形状来组织,每一层都依托在其下层之上。在这种组织方式下,上层使用了下层定义的各种服务,而下层对上层一无所知。另外,每一层对自己的上层隐藏其下层的细节。因此,第4层使用第3层的服务,第3层使用第2层的服务,第4层无需知道第2层的细节。”

系统分层的好处也非常明显:

· 可以替换某一层的具体实现,只要前后提供的服务相同即可。比如,领域驱动设计中的基础设施层,或者三层架构中的数据源层,我们可以任意的替换,不用考虑底层是数据库,你用的是 hibernate,还是mybatis,或者其它的语言的实现。

· 无需过多了解其他层次,比如,无需知道数据源层和资源库层存储的细节,你只需要告诉它存什么即可。

缺陷:

· 层次并不能封装所有的东西。有时它会为我们带来级联的修改。最经典的例子就

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值