JAVA设计模式之策略模式

  1. 策略模式的定义:
    定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。
    使这些算法在客户端调用的时候能够互不影响的变化。
  2. 组成:
    抽象策略角色: 通常由一个接口或抽象类实现。
    具体策略角色: 包装了相关算法和行为。
    环境角色:持有一个策略类的引用,最终给客户端调用的。
  3. 实现:
    使用策略模式可以把 行为和环境分割开来。
    环境类负责维持和查询行为类,算法和环境独立开来,算法的修改都不会影响环境和客户端。
  4. 编写步骤:
    对策略对象 定义一个公共接口。
    编写策略类,该类 实现了上面的公共接口。
    在使用策略对象的类中 保存一个对策略对象的引用。
    在策略对象的类中,实现对 策略对象的set和get方法的注入或者使用构造方法完成赋值。
  5. 典型例子:
    Collections类。
  6. 策略模式缺点:
    客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
    造成很多策略类。
  7. 解决方案:
    采用 工厂方法。

Git Strategy code

原文地址:https://www.cnblogs.com/nextStep/p/6687860.html