策略模式与依赖注入有何不同?
即以下是您可以使用策略模式执行的操作:
class Foo{
private readonly ISortAlgo _sortAlgo;
public Foo(ISortAlgo sortAlgo)
{
_sortAlgo = sortAlgo;
}
public void Sort()
{
_sortAlgo.sort();
}
}
使用 DI 你可以做同样的事情,本质上你可以有构造函数、设置器、接口等注入。它会产生与策略模式相同的效果。我知道 DI 还包含其他原则,例如松散耦合、可测试性、布线等。
在实施方面,我没有看到太大的区别。
策略模式和DI有什么区别?