适用性

 

组合模式的适用场景很明确:只要是树形数据结构都可以考虑适用组合模式。

 

结构

 

Aha!设计模式(55)-组合模式(2)

参与者


• Component (Graphic)
— 为树形数据结构上的节点声明标准接口。和所有的基类一样,也可以根据实际情况为某些结构提供缺省实现。
— 声明用于访问和管理下级节点的接口。
• Leaf (Rectangle、Line、Te x t等)
— 叶子节点。
• Composite (Picture)
— 提供访问和管理下级节点的功能,经常会包括下级节点的生命周期。
— 提供管理下级节点的数据结构。
— 将必要的操作转发给下级节点,这是实现递归调用的关键。

— 下级节点也可能是Compsite对象。

• Client
— 数据结构的利用者。

 

 

 

协作


用户使用Component类接口访问树形数据结构中的某个节点。如果对象是一个叶节点 ,则直接处理请求。如果对象是Composite节点, 它通常将请求发送给它下级节点。如果有必要,Composite也会执行一些辅助操作。辅助操作的内容由软件的需求而定,和组合模式无关。

 

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

Aha!设计模式(55)-组合模式(2)

相关文章:

  • 2022-12-23
  • 2021-12-10
  • 2021-09-12
  • 2022-01-07
  • 2021-06-27
  • 2021-06-17
  • 2021-05-01
  • 2021-11-19
猜你喜欢
  • 2021-11-25
  • 2021-10-01
  • 2021-05-21
  • 2021-07-03
  • 2021-05-03
  • 2021-04-27
  • 2021-06-20
相关资源
相似解决方案