zoukankan      html  css  js  c++  java
  • 策略模式

    一、定义

    策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式的变化独立于使用算法的客户。

    二、例子

    策略模式就是用来封装算法的,但在实践的时候,我们可以用它来封装几乎任何类型的规则。例如:

    1.出门出行的方式,骑行,公交,地铁,火车,飞机,汽车,火箭等。

    2.商城物品促销策略,打折,满减,返利等。

    三、结构

      其中,Context是上下文,用一个ConcreteStratege来配置,维护一个对于Strategy对象的引用;Strategy是策略类,用于定义所有支持算法的公告接口;ConcreteStrategy是具体策略类,封装了具体的算法和行为,继承于Strategy。

      代码示例:

     

      运行结果:

    四、优点

    1.算法可以自由切换。

    2.避免多重判断。

    3.扩展性良好,增加策略只需实现接口即可。

    4.简化单元测试。

    五、缺点

    1.策略类多,重用性低。

    2.要暴露全部策略类。

  • 相关阅读:
    数据库函数
    数据库查询习题整理(二)
    数据库查询习题整理(一)
    1202数据库查询
    1201新课程TSQL语句
    1123项目第五天
    1121项目第四天
    1120项目第三天
    14
    にちかん
  • 原文地址:https://www.cnblogs.com/lylblog/p/13549693.html
Copyright © 2011-2022 走看看