那现在先简单看一下DDD的模式有哪些,很多了解过DDD的人都知道DDD包括战术模式和战略模式,这里我从ERIC的书中总共抽取了40多个模式,也包括一些其他的书中特别提到的模式,比如事件溯源模式。
现在看一下DDD与设计模式的区别,在DDD的眼里设计模式是偏技术实现的,不包含业务领域的,所以DDD首要考虑的是如何建模如何表达实体和值对象等等。当然次要的就是将设计模式中的一些模式拿来当战术模式用,比如策略模式和工厂模式,但是不局限于怎么实现策略或者工厂。
另外一方面DDD更关注一些战略层面的事情比如说上下文的协同,迭代开发对应的软件价值交付。而设计模式更关注于逻辑代码是否可以降低实现的复杂度,提高可扩展性和可读性,符合一些开发规范。
事件风暴建模法这种方法比较适用于团队,比如说一帮人在会议室里讨论业务需求,用白板和便签构建领域事件,
描述领域对象。最后构建领域模型。