策略模式-spring

时间:2021-07-14
本文章向大家介绍策略模式-spring,主要包括策略模式-spring使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、策略模式:标准用法是有三个角色:环境、抽象策略、具体策略

大概解释一下,环境是持有抽象策略的引用,具体策略是抽象策略的实现,当不同参数传给环境角色时,它根据具体情况,获取相应

的具体策略对象,然后进行调用。看起来似乎还是有if  else的逻辑,哈哈。

2、我举例spring中对策略模式的应用,以下是伪代码:

public Interface CitySay{

boolean surport(String code);

sayCityName();

}

public class Chongqing implements CitySay{

@overrid

public void sayCityName(){

  sout("我是重庆。。。")

}

@overrid

boobean surport(String code){

  if("CQ".equales(code)){

    return true;

  }else{

    return false;

}

}

}

public class Shandong implements CitySay{

  @overrid

  public void sayCityName(){

    sout("我是山东。。。")

}

@overrid

boobean surport(String code){

  if("SD".equales(code)){

    return true;

  }else{

    return false;

}

}

}

使用:

入参 string   code

List<CitySay> lists=SpringUtil.getBeanNamesForType(CitySay.class);

for(CitySay  city:lists){

  if(city.surport(code)){

    city.sayCityName();

}

}

for循环的方式避免了使用if  else   而且最重要的是符合了开闭原则,如果再来一个上海,那么只需要填加一个实现类即可

不需要改动任何代码。

原文地址:https://www.cnblogs.com/zxg-blog/p/15009418.html