领域驱动设计之入门级教程(下)

  在我们创建软件的时候,有很多的功能是和要解决的业务领域没有关系的,他们是软件的基础部件,或者是为软件服务的。例如:权限、日志、数据访问、文件访问、网络访问、用户界面等。最好将这部分功能从业务领域分离开来,独立出来,因为这部分功能是相对稳定的,这样既保证了这部分的独立性,便于升级维护,不至于影响业务领域的功能实现,同时将业务功能,业务规则尽可能放在业务逻辑处理层。这样在以后如果修改业务逻辑,不至于需要修改基础部件,或者是修改散落在各处的业务逻辑代码。

  还有一点好处就是利于自动化测试。可以对独立的模块进行自动化测试,以后修改模块或者重构模块,只要将模块对应的测试脚本跑一遍,没有问题的话,就说明修改或者重构是正确的,就可以集成到系统中。

  因此,分层就是这个作用。将不同关注点的功能独立在一个层中,保证层的内聚性,每一层只依赖它下面的一层,减少耦合和依赖。

  一个通用的领域驱动设计的架构性解决方案通常包含四层:

  •   用户界面层,负责用户界面的展示。
  •   应用层,处理用户的输入。
  •   领域层,包含领域的信息,业务的核心所在,业务对象的持久化交给下面的基础设施层。
  •   基础设施层,作为其他层的支撑存在。

  将应用划分为独立的层,并建立层之间的交换规则,也即是层的接口,是相当重要的。

  模块,一提起模块就好像进行面向过程开发时候的概念。其实在面向对象中,这个概念也是适用的。可以考虑先划分模块,保持模块的独立性,方便部署和重构,然后在每一个模块中应用分层的设计,便于层的升级和维护。最大限度的保持系统的可扩展性。

  领域驱动设计使得我们可以一直专注于用户的业务领域,不至于偏离方向,应该说是一个永不过时的指导原则。

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值