小编kir*_*rpt的帖子

DDD:在哪里引发“创建”域事件

我努力寻找并实施以下问题的最佳实践:引发创建域事件(通知创建聚合的事件)的最佳位置在哪里。例如,如果我们在有界上下文中有订单聚合,我们希望在创建订单时通知所有感兴趣的各方。该事件可以是OrderCreatedEvent

我首先尝试的是在构造函数中引发此事件(我在每个聚合中都有一个域事件集合)。这样只有我们创建订单的时候才可以。因为当我们将来想对这个聚合做任何事情时,我们将通过构造函数创建它的新实例。然后OrderCreatedEvent将再次引发,但事实并非如此。

但是,我认为在应用程序层中引发事件是可以的,但这是一种反模式(域事件应该只存在于域中)。也许可以选择使用一个Create方法,将 OrderCreatedEvent 添加其域事件列表中,并在创建订单时在应用程序层中调用它。

我在互联网上发现的有趣事实是,在构造函数中引发域事件是一种反模式,这意味着最后描述的选项(具有Create 方法)将是最好的方法。

我使用 Spring Boot 作为应用程序,使用 MapStruct 作为将数据库/存储库实体映射到域模型聚合的映射器。此外,尝试找到一种方法来创建一个映射器,该映射器将跳过目标类的构造函数,但由于 Order 聚合的所有属性都是私有的,这似乎是不可能的。

domain-driven-design spring-boot mapstruct

13
推荐指数
2
解决办法
5477
查看次数

Redux表格打字稿通过自定义道具

我正在尝试将自定义道具传递给我的装饰组件reduxForm.我也是新手稿.

第一个问题是我不能用connect连接装饰组件:

export default
    connect(mapStateToProps)(
        reduxForm({
            form: 'myform'
        })(MyComponent)
    )
Run Code Online (Sandbox Code Playgroud)

错误:

Error:(89, 5) TS2345:Argument of type 'DecoratedComponentClass<any, Partial<ConfigProps<any, {}>>>' is not assignable to parameter of type 'ComponentType<{ addressValue: any; isDeliveryAddress: any; customerTypeValue: any; } & DispatchPr...'.
Type 'DecoratedComponentClass<any, Partial<ConfigProps<any, {}>>>' is not assignable to type 'StatelessComponent<{ addressValue: any; isDeliveryAddress: any; customerTypeValue: any; } & Dispa...'.
Type 'DecoratedComponentClass<any, Partial<ConfigProps<any, {}>>>' provides no match for the signature '(props: { addressValue: any; isDeliveryAddress: any; customerTypeValue: any; } & DispatchProp<any> & { …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs redux-form

5
推荐指数
2
解决办法
3574
查看次数