Java 聚合和聚合根是否作为单独的类实现?

Java 聚合和聚合根是否作为单独的类实现?,java,domain-driven-design,Java,Domain Driven Design,关于DDD的讨论太多了,我希望能找到很多代码示例来说明这些模式是如何实现的。但没那么幸运 让我困惑的是这一点。聚合类型的实体是以聚合根表示的,还是以单独的类实现的?这里有几个例子,如果其中任何一个是真的,请回答 他们是分开的班级 没有单独的聚合类,只有表示聚合的聚合根类 任何实体都可以是聚合体,只要它在事务范围中使用,保持不变量,并“聚合”一些值对象 //这是聚合: 类实体{ 私人物品清单; //id,字段 //保持不变量的方法 } 没有单独的聚合类,只有表示聚合的聚合根类 这个 介绍DDD和

关于DDD的讨论太多了,我希望能找到很多代码示例来说明这些模式是如何实现的。但没那么幸运

让我困惑的是这一点。聚合类型的实体是以聚合根表示的,还是以单独的类实现的?这里有几个例子,如果其中任何一个是真的,请回答

  • 他们是分开的班级
  • 没有单独的聚合类,只有表示聚合的聚合根类
  • 任何实体都可以是聚合体,只要它在事务范围中使用,保持不变量,并“聚合”一些值对象
  • //这是聚合:
    类实体{
    私人物品清单;
    //id,字段
    //保持不变量的方法
    }
    
    没有单独的聚合类,只有表示聚合的聚合根类

    这个

    介绍DDD和“聚合”模式的参考书是Eric Evans

    第5章讨论了在软件领域建模中使用的模式:实体、值、“域服务”等等

    第6章讨论了生命周期管理,其中他讨论了工厂、存储库和聚合:

    聚合是一组关联对象,我们将其视为一个单元,用于数据更改。每个聚合都有一个根和一个边界。边界定义了聚合内部的内容。根是聚合中包含的单个特定实体。根是聚合中允许外部对象保存对…的引用的唯一成员

    如果愿意,聚合是一个对象图,其中包括根对象以及通过遍历本地引用可以从根对象访问的其他对象

    没有单独的聚合类,只有表示聚合的聚合根类

    这个

    介绍DDD和“聚合”模式的参考书是Eric Evans

    第5章讨论了在软件领域建模中使用的模式:实体、值、“域服务”等等

    第6章讨论了生命周期管理,其中他讨论了工厂、存储库和聚合:

    聚合是一组关联对象,我们将其视为一个单元,用于数据更改。每个聚合都有一个根和一个边界。边界定义了聚合内部的内容。根是聚合中包含的单个特定实体。根是聚合中允许外部对象保存对…的引用的唯一成员


    如果愿意,聚合是一个对象图,其中包括根对象以及通过遍历本地引用可以从根对象访问的其他对象。

    谢谢您的回答。请再说一个,只是为了完全澄清:所以聚合根和常规实体的类没有任何特殊属性来区分它们(比如对于实体和存在ID的值对象),但造成区别的是它们的角色,而不是代码?是的,没错。在一些示例中,您将看到一个空的“标记接口”,用于区分根。谢谢您的回答。请再说一个,只是为了完全澄清:所以聚合根和常规实体的类没有任何特殊属性来区分它们(比如对于实体和存在ID的值对象),但造成区别的是它们的角色,而不是代码?是的,没错。在一些示例中,您将看到一个空的“标记接口”,用于区分根。
    class Aggregate {
       private Entity aggregateRootEntity;
       //methods that keep invariants
    }
    
    class AggregateRootEntity {
       //id, fields, value objects references, other entities references
       //methods that keep invariants
    }
    
    //This is aggregate:
    class Entity {
       private List<ValueObject> valueObjects;
       //id, fields
       //methods that keep invariants
    }