【发布时间】:2017-09-06 20:23:31
【问题描述】:
假设我们将 Foo 作为 AggregateRoot。并且有通用的 Foos 以及具有许多扩展属性的 EnhancedFoos。如果在非增强 Foo 对象上调用增强操作,是否可以在单个聚合根类上为通用和增强属性公开“操作”并进行验证检查以引发异常?从技术上讲,这种情况下的 AggregateRoot 将为所有支持的 Foo 类型聚合所有可能的“Actions”?
显然很大程度上取决于域结构,但我认为这种假设情况很常见。可能是基本问题,但我只是从聚合/根开始。
根据反馈更新
假设我们将 Foo 作为 AggregateRoot。并且有通用的 Foos 以及 FlyableFoos、SwimmableFoos 等。所以,Aggregate 应该“了解”所有可能的行为(飞行、嘎嘎、游泳)并将其适当地暴露给服务功能。如果某事被当前对象“不支持”的某些原因调用,Aggregate 可能会抛出异常“对不起,企鹅不能飞”。
【问题讨论】:
标签: design-patterns domain-driven-design cqrs aggregateroot