设计模式学习每日一记(10.组合模式)

组合模式

A.定义:

把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。

B.定义分析:

 "把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。"整体部分关系,比如:Window这个对象,其中可以包括Button,List,Menu等组件,Window就是个整体,Button,List,Menu等就是组成部分.

"把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。"如果上边的Window里包含了List,同时也包含了另一个Window对象,里边的Window对象又包含了许多对象,这其实就是个树形结构了。

"把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。"这里的没有区别意思是,无论里边的Window包含了多少个对象,对于外边的Window来说,他和List是一样的,没有区别.

C.问题:

(1)什么时候用到?

GUI经常用到单一组件和组合组件这样的关系,一般的方式是有个Widget基类,一个CompositeWidget继承自Widget,同时CompositeWidget维护了多个Widget的集合.

原文地址:https://www.cnblogs.com/linucos/p/2228725.html