1.名词解释:
策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的用户。在不同的时间或条件应用不同的业务规则时,可以考虑使用策略模式;
2.代码示例:
策略抽象类
package DesignPattern.StrategyPattern;
public abstract class Strategy {
public abstract void Execute();
}
具体策略类A
package DesignPattern.StrategyPattern;
public class ConcreateStrategyA extends Strategy{
@Override
public void Execute() {
//代码逻辑
System.out.println("ConcreateStrategyA.execute is process...");
}
}
具体策略类B
package DesignPattern.StrategyPattern;
public class ConcreateStrategyB extends Strategy{
@Override
public void Execute() {
// TODO Auto-generated method stub
System.out.println("ConcreateStratetyB.execute is process...");
}
}
package DesignPattern.StrategyPattern;
public class Context {
private Strategy strategy = null;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void ContextInterface() {
strategy.Execute();
}
}
主控程序类:
package DesignPattern.StrategyPattern;
public class Client {
public static void main(String[] args) {
Strategy a = new ConcreateStrategyA();
Strategy b = new ConcreateStrategyB();
Context c1 = new Context(a);
Context c2 = new Context(b);
c1.ContextInterface();
c2.ContextInterface();
}
}