【发布时间】:2012-08-07 16:53:16
【问题描述】:
策略模式与依赖注入有何不同?
以下是您可以使用策略模式执行的操作:
class Foo{
private readonly ISortAlgo _sortAlgo;
public Foo(ISortAlgo sortAlgo)
{
_sortAlgo = sortAlgo;
}
public void Sort()
{
_sortAlgo.sort();
}
}
使用 DI 你可以做同样的事情,基本上你可以有构造函数、设置器、接口等注入。它会产生与策略模式相同的效果。我知道 DI 还包含其他一些原则,例如松散耦合、可测试性、布线等。
在实施方面,我看不出有太大的不同。
策略模式和DI有什么区别?
【问题讨论】:
-
目前的答案并不是特别令人满意。更好的答案会务实地关注在运行时注入变量行为的差异。
标签: c# design-patterns dependency-injection strategy-pattern