戦略パターンは依存性注入とどのように異なりますか?
つまり、以下は戦略パターンでできることです。
class Foo{
private readonly ISortAlgo _sortAlgo;
public Foo(ISortAlgo sortAlgo)
{
_sortAlgo = sortAlgo;
}
public void Sort()
{
_sortAlgo.sort();
}
}
DIを使用すると、同じことができます。基本的に、コンストラクター、セッター、インターフェイスなどのインジェクションを行うことができます。ストラテジーパターンと同じ効果があります。DIは、緩い結合、テスト容易性、配線など、他の原則のセットでもあることを認識しています。
実装に関しては、あまり違いは見られません。
戦略パターンとDIの違いは何ですか?