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