我有一个聚合根 Order
与相应的 OrderService
和 OrderRepository
。
我有一个带有相应 ExtendedOrder
和 ExtendedOrderService
的 ExtendedOrderRepository
。
例如:
class Order {
int GetOrderId();
}
class ExtendedOrder : Order {
string GetExtendedInfo();
}
我想让
OrderService
返回类型 Order
和 ExtendedOrder
作为 Order
的列表。但是要获得 ExtendedOrder
,当 ExtendedOrderService
的类型为 Order
时,它应该询问相应的 ExtendedOrder
。是否有可能获得这种行为?
让一个聚合根扩展另一个聚合根是否合法?
最佳答案
您不需要 ExtendedOrderService。只需使用一个 OrderService 来协调来自 OrderRepository 和 ExtendedOrderRepository 的结果。
有关应用程序服务角色的更多信息,请参阅 answer to this question。
一个应用服务可以使用多个存储库。
关于inheritance - DDD : aggregate root specialization,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9015038/