|
|
1
28
DI中的一个常见模式是 一个给定抽象只有一个实现。这只会让生活变得更简单,因为你不需要处理你所描述的模糊性。 然而,有时,您需要根据上下文改变实现,例如您给出的示例。许多DI容器提供了提供限定参数的方法,但这意味着您将最终将代码紧密耦合到特定的DI容器。 一个更好的解决办法是引入 Abstract Factory 这可以提供你所需要的。差不多
如果你需要注入更多的策略,也许 Builder 设计模式可能更适合。 在任何情况下,要点是,您不需要在容器中注册许多不同的汽车,而需要注册单个ICarFactory实现。
|