Как шаблон стратегии отличается от инъекции зависимостей?
т.е. ниже, что вы можете сделать с шаблоном стратегии:
class Foo{
private readonly ISortAlgo _sortAlgo;
public Foo(ISortAlgo sortAlgo)
{
_sortAlgo = sortAlgo;
}
public void Sort()
{
_sortAlgo.sort();
}
}
с DI вы можете сделать то же самое, по сути, вы можете иметь конструктор, сеттер, интерфейс и т.д. инъекции. и это даст тот же эффект, что и шаблон стратегии. Я знаю, что DI также содержит другие принципы, такие как ослабление сцепления, тестируемость, электропроводка и т.д.
В плане реализации я не вижу большой разницы.
какая разница между шаблоном стратегии и DI?