毫无疑问,领域驱动设计引入了一套自成体系的设计概念:限界上下文、应用服务、领域服务、聚合、实体、值对象、领域事件以及资源库和工厂。这些设计概念又与其它设计方法的设计概念互为参考和引用,再糅合不同团队不同企业不同领域的设计实践,就产生了更多的设计概念。诸多概念纠缠不清,说法不一,理解不同,就会形成认知上的混乱,干扰整个团队对领域驱动设计的理解。既然领域驱动设计强调为领域逻辑建立统一语言,我们不妨也为这些设计概念定义一套“统一语言”,通过理解的一致保证交流的畅通,确保架构和设计方案的统一性。
设计术语的统一
当我们在讨论领域驱动设计时,不止要谈到领域驱动设计固有的设计概念,结合开发语言和开发平台的设计实践,又会有其他设计概念穿插其中,它们之间的关系并非正交的,解决的问题和思考的角度都不太一致,许多设计概念更有其历史渊源,却又在提出之后或者被滥用,或者被错用,到了最后已经失去了它本来的面目。因此,我们需要揭开这些设计术语的历史迷雾,理解其本真的概念,然后再确定它的统一语言。
POJO对象
POJO(Plain Old Java Object)的概念来自 Martin Fowler、Rebecca Parsons 和 Josh MacKenzie 在 2000 年一次大会的讨论。它的本质含义是指一个常规的 Java 对象,不受任何框架、平台的约束和限制。除了遵守 Java 语法之外,它不应该继承预先设定的类、实现预先设定的接口或者包含