重新发明轮子:创建您自己的 MediatR - 第1部分

重新发明轮子:创建您自己的 MediatR - 第1部分

💡 原文约3100字/词,阅读约需12分钟。
📝

内容提要

文章讨论了MediatR库的流行及其作者将其转变为付费产品的决定,作者对此表示支持并感谢其贡献。接着,介绍了如何创建自己的MediatR实现,包括Command Handler和ISender接口的设计,强调灵活性和简化代码的重要性。最后,鼓励读者测试和扩展自己的实现。

🎯

关键要点

  • MediatR库的流行及其作者将其转变为付费产品的决定得到了支持和感谢。

  • 文章分为三部分,第一部分介绍Command Handler和ISender接口的设计。

  • 强调灵活性和简化代码的重要性,鼓励读者测试和扩展自己的实现。

  • 创建自己的MediatR实现时,Handler接收命令并返回响应,设计了IHandler接口。

  • ISender接口用于发送命令,支持多个Handler处理相同请求。

  • TypeInspector类用于获取注册的Handler类型,简化Handler的注册过程。

  • HandlerTypeManager类用于管理和注册Handler,确保Handler的唯一性。

  • Sender类实现ISender接口,负责处理请求并返回响应。

  • DependencyInjection类提供了一个扩展方法,简化MediatR的配置过程。

  • 鼓励读者创建自己的Handler并进行调试,探索MediatR的灵活性和功能。

🔎

延伸解读

MediatR的商业化背景

MediatR库的作者决定将其转变为付费产品,这一决定反映了开源项目面临的可持续性挑战。许多开发者和公司在使用这些工具时,往往忽视了对开发者的支持,导致优秀的开源项目难以维持。

自定义实现的灵活性

文章中提到的自定义MediatR实现提供了更大的灵活性,允许开发者使用任意类型作为请求。这种设计减少了代码的冗余,使得开发者可以更高效地处理不同类型的请求和响应。

注意代码的维护性

尽管文章提供了创建自定义MediatR实现的指导,但作者明确指出,所提供的代码并不适合生产环境。这提醒开发者在使用和扩展代码时,必须考虑到代码的维护性和长期支持。

延伸问答

MediatR库的作者为什么决定将其转变为付费产品?

作者Jimmy Bogard决定将MediatR转变为付费产品是因为开源项目通常缺乏足够的贡献,维护这样的库需要大量时间和精力。

如何创建自己的MediatR实现?

创建自己的MediatR实现需要设计Command Handler和ISender接口,确保灵活性和简化代码。

ISender接口的作用是什么?

ISender接口用于发送命令,支持多个Handler处理相同请求,并返回响应。

如何管理和注册Handler?

HandlerTypeManager类用于管理和注册Handler,确保Handler的唯一性,并提供注册服务的功能。

DependencyInjection类的功能是什么?

DependencyInjection类提供了一个扩展方法,简化MediatR的配置过程,方便用户注册Handler和Sender。

在创建MediatR实现时,如何处理请求和响应?

在实现中,Handler接收命令并返回响应,设计了IHandler接口以处理请求和响应。

🏷️

标签

➡️

继续阅读