5个版本 (破坏性更新)
| 0.6.0 | 2024年2月21日 |
|---|---|
| 0.4.0 | 2022年2月3日 |
| 0.3.0 | 2022年1月26日 |
| 0.2.0 | 2022年1月23日 |
| 0.1.0 | 2022年1月22日 |
#3 在 #ddd
每月下载量53次
在 dddk_security 中使用
92KB
2K SLoC
4dk-core
核心项目实现了该框架的主要概念。
它实现了以下实体: Command、Event 和 Query。
Command
Command
Command 是一个对象,它触发类型为 CommandHandler 的用例。它是发送给系统的命令。事务将产生一系列 Event。Command 通过 CommandBus 分发到正确的处理器。
CommandBus
CommandBus 实现了以下特性 fn dispatch(command: &Command) -> Vec<Box<dyn Event>>。
本项目提出了以下命令总线
CommandDispatcher:其new工厂接受一个包含CommandHandlerInBus的向量Vec<Arc<Box CommandHandlerInBus>>。该总线将Command分发到正确的CommandHandler。
在示例中可以找到不同的总线组合。
Event
Event 是由 CommandHandler 返回的对象。一个 Event 是业务事务的结果。它可以触发类型为 EventHandler 的用例。Event 通过 EventBus 分发到相关的处理器。
Query
一个 Query 对象会触发一个类型为 QueryHandler 的用例。这是向系统提出的问题。一个 Response 是从 QueryHandler 返回的。
QueryBus
EventBus 验证以下特质 fn dispatch(query: &Query) -> Vec<Box<dyn Response>>。
本项目提出了以下查询总线
QueryDispatcher:其new工厂接受一个Vec<Arc<Box QueryHandlerInBus>>的QueryHandlerInBus。这个总线将Query分发到其正确的QueryHandler。
依赖项
~88KB