You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用UML图描述依赖注入?关于MediatR实现CQRS与Mediator模式的困惑

在UML中描述依赖注入的通用方法及MediatR场景优化

通用UML描述依赖注入的核心方式

  • 依赖关系标注:使用带箭头的虚线表示类/接口间的依赖,箭头指向被依赖的类型。比如A类依赖B接口,就画虚线箭头从A指向B,清晰体现谁依赖谁。
  • 实现关系体现:用带空心箭头的虚线表示类对接口的实现,比如自定义Handler实现MediatR的IRequestHandler,就用这条线连接两者。
  • DI绑定关系说明:通过UML注释(Note)来标注DI容器的映射规则,比如在接口和其实现类之间添加注释,内容如DI注册:IRequestHandler<Query, Response> → Handler,注释用虚线连接到对应的接口和类。
  • 构造注入细节展示:在类的结构框里明确写出带依赖参数的构造函数,比如QueryInvoker的构造函数写成+ QueryInvoker(mediator: IMediator),配合依赖关系箭头,直观展示注入的入口。

针对你的MediatR + CQRS场景的UML调整建议

结合你已有的UML图,补充以下内容即可清晰描述DI逻辑:

  1. 补充依赖与实现关系
    • 给QueryInvoker添加指向IMediator的虚线箭头,标注依赖关系,表示它通过DI注入IMediator实例。
    • 用空心虚线箭头连接Handler到IRequestHandler<Query, Response>,Query到IRequest<Response>,明确它们对MediatR接口的实现。
  2. 添加DI注册注释
    • 在IRequestHandler<Query, Response>和Handler之间添加注释,说明DI容器注册:将IRequestHandler<Query, Response>映射到Handler。
    • 如果需要展示MediatR自身的DI注册,可在IMediator和其库内实现类Mediator之间添加类似注释。
  3. 明确构造注入入口
    • 在QueryInvoker的类框中添加构造函数定义:+ QueryInvoker(mediator: IMediator),让读者清楚注入是通过构造函数完成的。

内容的提问来源于stack exchange,提问作者Ari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:10:07