什麼時候會使用Strategy Pattern?什麼時候和爲什麼要使用戰略模式?
我看到客戶端代碼片段是這樣的:
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);
}
}
的第一部分代碼是直接從維基百科頁面取。一個很大的區別是環境消失了,但它在這個例子中並沒有做任何事情。也許有人有一個更好的例子,戰略是有道理的。我通常喜歡設計模式,但這似乎增加了複雜性而不增加實用性。
http://www.youtube.com/watch?v=MOEsKHqLiBM – BrunoLM 2014-09-06 02:53:05