Паттерн стратегии и внедрение зависимостей

Чем шаблон стратегии отличается от внедрения зависимостей?

т.е. ниже показано, что вы можете сделать с шаблоном стратегии:

class Foo{
   private readonly ISortAlgo _sortAlgo;

  public Foo(ISortAlgo sortAlgo)
  {
     _sortAlgo = sortAlgo;
  }

  public void Sort()
  {
    _sortAlgo.sort();
  }

}

с DI вы можете сделать то же самое, по сути, у вас может быть конструктор, сеттер, интерфейс и т. д. инъекция. и это дало бы тот же эффект, что и шаблон стратегии. Я знаю, что DI также является набором других принципов, таких как слабая связь, тестируемость, проводка и т. д.

С точки зрения реализации я не вижу большой разницы.

в чем разница между шаблоном стратегии и DI?

13
задан DarthVader 7 August 2012 в 16:53
поделиться