美文网首页
《每天一点Java知识》设计模式——策略模式

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

作者: KaelQ | 来源:发表于2017-12-09 11:04 被阅读46次

策略模式的概念图

策略模式源来

在生活中,实现一个目标有多种方式方法,也就是有多种策略。可以用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建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • Java 常用设计模式简例

    简述Java常用设计模式 简述Java常用设计模式及设计原则 strate---------策略模式针对接口编程,...

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

    策略模式的概念图 策略模式源来 在生活中,实现一个目标有多种方式方法,也就是有多种策略。可以用if-else来简单...

  • 策略模式

    参考资料:漫话:如何给女朋友解释什么是策略模式? 设计模式之策略模式(实例+Demo) Java设计模式(8)——...

网友评论

      本文标题:《每天一点Java知识》设计模式——策略模式

      本文链接:https://www.haomeiwen.com/subject/fijuixtx.html