《每天一点Java知识》设计模式——策略模式

策略模式的概念图

《每天一点Java知识》设计模式——策略模式_第1张图片

策略模式源来

在生活中,实现一个目标有多种方式方法,也就是有多种策略。可以用if-else来简单的判断,但是当条件变多,并且条件变复杂后,耦合会十分的高,逻辑混乱不够清晰。
所以就产生了策略模式。
首先有一个上下文类Context,这个类持有一个策略的类引用 Strategy,并且有一个set方法。

public Class Context{
  Strategy strategy;
  public void Context(Strategy strategy){
  this.strategy=strategy;
  }
  public void doSomething(){
    strategy.doSomething();  
  }
}

然后将Strategy当做接口类,声明必须要实现的方法doSomething(),实现它的多个策略子类。

public inteface Strategy{
  public void doSomething();
}
public Class OneStrategy implement Strategy{
  public void doSomething(){
     System.out.println("one");
  }
}
public Class TwoStrategy implement Strategy{
  public void doSomething(){
     System.out.println("two");
  }
}

最后使用策略OneStrategy来解决问题。

public void main(){
  Context context=new Context(new OneStrategy);
  context.doSomething();
}

若要是用策略TwoStrategy,将TwoStrategy 传递进Context中即可。

核心思路是,持有接口引用,使用实现接口的具体类来覆盖其方法,可扩展性和维护性极强。

你可能感兴趣的:(《每天一点Java知识》设计模式——策略模式)