6

我想知道如何在 CQRS 中创建多个聚合根。

示例:我有一个手机聚合根和 Simcard 聚合根。这些聚合的 id 应该是订阅聚合根的一部分。

我需要创建一个基于 SimCard 的订阅聚合,并且系统中不存在 Handset.SimCard 和 Handset 聚合。它们是在创建订阅时创建的。当 Subscription 被删除时,SimCard 和 Handset 未被删除。商业原因:用户可能将不同的 SimCard 插入同一个手机或手机支持双 SimCard。

业务规则:电话号码应该是唯一的。手机序列号应该是唯一的。一个订阅与一部手机相关联 一部手机与一个或多个电话号码相关联。

Class Handset { 
  String serialNumber 
 Handset(UUID id,serialNumber){ 
    super(id); 
    this.serialNumber=serialNumber; 
} 
} 

Class SimCard{ 
  String phoneNumber 
  SimCard(UUID id, String phoneNumber){ 
     super(id); 
        this. phoneNumber= phoneNumber;
  } 
 } 

Class Subscription { 
     UUID id 
     UUID deviceid 
      UUID simCardid 

    Subscription (UUID id, UUID deviceid, UUID simCardid){ 
             Super(id); 
             This. Deviceid= deviceid; 
             This. simCardid= simCardid; 
     } 
     }
  • 隐藏引用的文字 -
  • 显示引用的文字
4

1 回答 1

4

您可以为此使用 Saga。看:

  1. Saga 持久性和事件驱动架构
  2. 消息传奇
  3. 犀牛服务巴士:佐贺和州

另请查看不要创建聚合根

于 2010-12-25T08:15:05.310 回答