领域驱动设计(DDD :Domain-Driven Design)相关的思考

本文记录了作者对技术总监讲解的DDD课程的理解和感悟。首先,作者反思了在实际开发中对面向对象编程的忽视,强调了一个正确设计的类应该有丰富的行为,而非仅仅包含属性。接着,介绍了领域驱动设计(DDD)的概念,源于2004年Eric Evans的著作,并列举了其他专家的贡献。DDD通过通用语言、限界上下文等概念,影响了系统分析、架构和实现,其核心要素包括实体、值对象、聚合根等。
摘要由CSDN通过智能技术生成

今天,技术总监给我们上了一堂有关DDD 的课程,感触颇多,特此记录!

1、问题

1.1、面向对象

虽然一直在说面向对象编程,但实际开发中一直没有做深入思考,更谈不上去用了,惭愧。

一个Class要有属性和行为,属性是对状态的描述,而行为是对属性进行改变所做的一些操作。当前项目中也有太多的残缺类(一个实体类中只有getter和setter 方法,基本上没有什么行为,故曰残缺类)。

我们来看一下 java.util.ArrayList.java,该类中的属性只有一个:

 transient Object[] elementData; // non-private to simplify nested class access

其他的像grow()、indexOf()等方法都是对该属性的操作,而且方法数远远大于属性,这才是一个正确的类,我们要对属性进行深入分析,发掘其一系列行为,让其变得高内聚、松耦合。

2、领域驱动设计思想及发展

2004年Eric Evans在其书中《领域驱动设计—软件核心复杂性应对之道》提出了“领域驱动设计(简称DDD)”的概念。

此后一批专家陆续出版了DDD相关的书籍,丰富了领域驱动设计的实践,其中有<Applying Domain-Driven Design and Patterns> <Domain-Driven Design Quickly> <Domain-Driven Design Using Naked Objects> <Implementing Domain Driven Design>等等。

领域驱动设计通过“通用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值