[关闭]
@happyfans 2015-02-18T06:16:09.000000Z 字数 438 阅读 1274

继承

java


继承是代码重用的利器,但继承并不总是最好的工具。
复合优先于继承,多用组合,少用继承
在类中增加一个私有的域,引用另一个已有类的实例,通过调用引用实例的方法从而获得新的功能,这种设计被称为组合(复合)

策略模式中的设计原则

  1. 找出应用程序中需要变化的部分,把他们独立出来,不要和那些不需要变化的代码混在一起
  2. 面向接口编程,而不是面向实现编程
  3. 多用组合,少用继承

策略模式的实现

  1. 通过分离变化得出的策略接口(Strategy)
  2. 为策略接口(Strategy)提供实现类
  3. 客户程序中有一个Strategy
  4. 在客户程序中选择/组装Strategy实现类

策略模式的UML结构

策略模式的优缺点

优点

  1. 使用组合,使得架构更加灵活
  2. 富有弹性,可以较好的应对变化(开闭原则)
  3. 更好的代码复用性(相对于继承)
  4. 消除大量的条件语句

缺点

  1. 客户代码需要了解每个策略实现的细节
  2. 增加了对象的数目,给维护带来了困难

策略模式的使用场景

  1. 许多场景的类仅仅是行为差异
  2. 运行时选取不同的算法变体
  3. 通过条件语句在多个分支中选取
    ###行业案例:策略模式使得应用更有弹性
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注