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

    不需要改动任何代码。

  • 相关阅读:
    PageControl1
    IE6 发送奇数个汉字出现的BUG机器解决之道
    十 C# Socket协议的形象描述
    深入浅出URL编码
    认识session
    Servlet过滤器介绍之原理分析
    web开发标准
    JS 截取字符串及字符与数字转换
    Servet和JSP学习总结(转载)
    端口、系统服务、系统进程概念
  • 原文地址:https://www.cnblogs.com/zxg-blog/p/15009418.html
Copyright © 2020-2023  润新知