设计模式之策略模式

策略模式

定义:在策略模式中,我们创建 各种策略对象,和一个行为随着 策略对象的改变而改变context对象。策略对象改变对Context对象的执行算法
概念:定义一系列的算法,用Context将他们他们封装起来,可以相互替换。
何时使用:有许许多多的类,区别只是他们的行为不同。关键是他们实现的是同一个接口。
优点:算法可以自由切换,避免多重条件判断,
缺点:当策略过多的时候,所有的策略都会对外暴露
代码实现

  public interface Strategy {
    void Calculation(int i,int j);  
}

public Class addStategy implements Strategy {
    @Overried
    void Calculation(int i,int j){
      System.out.println("i+j:"+(i+j));
 }
}

public Class reduceStategy implements Strategy {
        @Overried
    void Calculation(int i,int j){
      System.out.println("i-j:"+(i-j));
 }
}

//创建Context
public Class Context{
    private Stategy stategy;
    Context(Stategy stategy){
        this.stategy = stategy;
    }

public void CalculationNumber(int i,int j){
    stategy.Calculation(i.j);
}

}

test.java
public Class StrategyTest{
    Context context = new Context(new addStategy ());
    context.CalculationNumber(1,2);
}

总结

1.封装变化的概念。少了很多if的条件判断
2.编程中使用接口,而不是使用的是具体的实现类(面向接口编程)

你可能感兴趣的:(设计模式之策略模式)