Когда будет использоваться шаблон стратегии?
Я вижу фрагменты кода клиента следующим образом:
class StrategyExample {
public static void main(String[] args) {
Context context;
// Three contexts following different strategies
context = new Context(new ConcreteStrategyAdd());
int resultA = context.executeStrategy(3,4);
context = new Context(new ConcreteStrategySubtract());
int resultB = context.executeStrategy(3,4);
context = new Context(new ConcreteStrategyMultiply());
int resultC = context.executeStrategy(3,4);
}
}
и похоже, что вы можете просто реорганизовать его на это:
class StrategyExample {
public static void main(String[] args) {
// Three contexts following different strategies
int resultA =new ConcreteStrategyAdd().execute(3,4);
int resultB =new ConcreteStrategySubtract().execute(3,4);
int resultC =new ConcreteStrategyMultiply().execute(3,4);
}
}
Первый раздел кода был взят непосредственно со страницы wikipedia. Одно большое различие заключается в том, что контекст уходит, но в любом случае он ничего не делал в этом примере. Может быть, у кого-то есть лучший пример, где стратегия имеет смысл. Мне обычно нравятся шаблоны дизайна, но, похоже, это добавляет сложности, не добавляя при этом полезности.