【核心思想】 多用组合 / 聚合少用继承;用行为类组合,而不是行为的继承。更有弹性。
【项目使用】关键是 分析项目中变化部分与不变部分
【核心原则】体现了“对修改关闭,对扩展开放”原则。客户端增加行为不用修改原有代码,
只要添加一种策略(或者行为)即可,避免了使用多重判断语句(if.else if.else)
【优点】提供了可以替换继承关系的办法:策略模式将 算法封装在独立的Strategy类中,使得你可以独立于其Context改变它,使它易于切换、易于理解、易于扩展。
【缺点】需要注意的是:每添加一个策略就要增加一个类,当策略过多是会导致类的数目庞大。