扩展对象(Extension objects)


目的
预计将来需要扩展对象的接口。其他接口由扩展对象定义。

适用场景

  • 您需要支持向现有类添加新的或不可预见的接口,并且不希望影响无需此新接口的客户端。扩展对象允许您通过在单独的类中定义相关操作来将它们保持在一起
  • 表示重要抽象的类可为不同的客户端扮演不同的角色。该类可以扮演的角色数量应该是开放的。需要保留重要抽象本身。例如,即使不同的子系统以不同方式查看客户对象,客户对象仍然是客户对象。
  • 一个类应该可以使用新行为进行扩展,而无需从中进行子类化。