责任链模式

中间件的设计就是责任链模式的应用和变形。每个中间件根据需要处理请求,并且可以根据请求信息自己决定是否传递给下一个中间件。

工厂模式

依赖注入的本质就是将对象的创建交给 IOC 容器 来处理,所以其实 IOC 容器本质就是一个工厂,从 IOC 中获取服务实例的过程就是工厂创建对象的过程,只是会根据服务的生命周期来决定是创建新对象还是返回已有对象。

单例模式

  • Cache
  • DbContext
  • HttpClient
  • LoggerFactory
  • Configuration

享元模式

字符串池(string intern)

观察者模式/发布订阅模式

使用事件(event)进行解耦,外部代码通过订阅事件来解耦,实现对内部状态的观察。

适配器模式

ServiceProviderFactory, 使得 .NET Core 可以更方便的集成第三方的依赖注入框架,这里使用了适配器模式。

补充

观察者模式 & 发布订阅模式

虽然这两种模式在很多情况下非常相似,但是它们还是有一些区别。
观察者模式通常用于更加简单的情况,而发布-订阅模式则更加通用,并且可以通过中间件来实现进程间通信
在发布-订阅模式中,发布者和订阅者之间可以有多个中间件,可以将其视为事件的处理管道