适用性
组合模式的适用场景很明确:只要是树形数据结构都可以考虑适用组合模式。
结构
参与者
• Component (Graphic)
— 为树形数据结构上的节点声明标准接口。和所有的基类一样,也可以根据实际情况为某些结构提供缺省实现。
— 声明用于访问和管理下级节点的接口。
• Leaf (Rectangle、Line、Te x t等)
— 叶子节点。
• Composite (Picture)
— 提供访问和管理下级节点的功能,经常会包括下级节点的生命周期。
— 提供管理下级节点的数据结构。
— 将必要的操作转发给下级节点,这是实现递归调用的关键。
— 下级节点也可能是Compsite对象。
• Client
— 数据结构的利用者。
协作
用户使用Component类接口访问树形数据结构中的某个节点。如果对象是一个叶节点 ,则直接处理请求。如果对象是Composite节点, 它通常将请求发送给它下级节点。如果有必要,Composite也会执行一些辅助操作。辅助操作的内容由软件的需求而定,和组合模式无关。
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】