策略模式是对象的行为模式,把一系列的算法封装,动态的选择自己需要的算法进行使用.
1.需要一个抽象的策略
package pattern.strategy;
public interface Strategy {
public void operate();
}2.定义具体的策略
package pattern.strategy;
public class Specific implements Strategy{
@Override
public void operate() {
System.out.println("specific!");
}
}3.环境角色,应用场景.(有一个策略类的引用)
package pattern.strategy;
public class Context {
private Strategy strategy;//策略类的引用
public Context(Strategy strategy){
this.strategy = strategy;
}
public void operate(){
this.istrategy.operate();
}
}优点:高内聚低耦合,避免了使用多重条件判断语句.扩展性强.
缺点:调用者必须知道所有的策略类,自己决定使用哪一个.