首页 > 编程语言 > 详细

策略模式-spring

时间:2021-07-14 11:58:06      阅读:5      评论:0      收藏:0      [点我收藏+]

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   而且最重要的是符合了开闭原则,如果再来一个上海,那么只需要填加一个实现类即可

不需要改动任何代码。

 

策略模式-spring

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!