这是关于在.NET Core中使用中介者模式的系列的第二部分。如果你从此处开始那么很可能会错过一些重要的事情,因而在你继续阅读之前,请确保回过头来阅读第一部分。
IEnumerable 模式
IEnumerable是过去5年我一直在我独自工作的项目中使用的一些东西。它最终证明是一件很棒的特性,当我发现如果你绑定多个类型到一个相同的接口,几个IOC容器会自动将一个 IEnumerable<T> 注入一个类(这听起来会让我迷惑,但当我们开始看代码的时候就会发现其很有道理)。
这块我使用的代码并不是明确的“中介者”模式。但是当我考虑“中介者”模式的核心定义特性的时候,我时刻记得:
其通过使得对象之间不进行显示的相互引用而减少耦合。
这非常接近于这样做。
让我们来看看一个示例。对于这个我将使用标准的.NET Core web API工程。没有什么神奇的。在这段代码中,我有一个接口,并具有这个接口的两个实现。
public interface INotifier { void Notify(); } public class Notifier1 : INotifier { public void Notify() { Debug.WriteLine("Debugging from Notifier 1"); } } public class Notifier2 : INotifier { public void Notify() { Debug.WriteLine("Debugging from Notifier 2"); } }
在我的startup.cs类中,