2021年领域驱动设计之体会二

领域驱动设计之体会二 领域驱动设计之体会二 1.服务执行的操作涉及一个领域概念,这个领域概念通常不属于一个实体或者值对象。 2.被执行的操作涉及到领域中的其他对象。 3.操作是无状态的。 需要注意的是

领域驱动设计之体会二 领域驱动设计之体会二 1.服务执行的操作涉及一个领域概念,这个领域概念通常不属于一个 实体或者值对象。 2.被执行的操作涉及到领域中的其他对象。 3.操作是无状态的。 需要注意的是,我们应该严格区分领域层的服务和基础设施层的服 务。设计时要确保领域层保持从其他层中隔离开来。 为了降低模型的复杂性,便于系统并行___,领域驱动中也有模块的 概念。通过把整个系统分割为不同的模块,来提高代码的质量,增进 内聚,消除耦合。模块应该具有良好的'接口,通过这些接口为其他模 块提供服务。 聚合、工厂和资源库都与管理领域对象的生命周期相关。 聚合通过一个作为根的实体来访问其他属性,用以保持数据的一致 性。根是外部可以访问的唯一对象。聚合是用来定义对象所有权和边 界的领域模式。我们通常不追求模型的完整性,而是让它们尽量地简 单和容易理解。聚合通过唯一的根实体,建立边界将内部和外部的对 象划分开来。然而实际使用中,根实体的构造函数往往会很大很复 杂。当对象的每个客户程序持有关于对象构建的专有知识时,就意味 着领域对象和聚合的封装被破坏了。我们可以利用工厂来完成封装复 杂的对象创建过程。一种工厂是给聚合的根增加一个方法,这个方法 用来创建对象,强化所有不变量,返回创建对象的引用或者拷贝。更 好的方法是创建一个专用工厂类,这样可以保持对象的简单,不会造

腾讯文库2021年领域驱动设计之体会二