设计模式的理解:组合模式 (composite) -ag凯发k8国际
ag凯发k8国际
收集整理的这篇文章主要介绍了
设计模式的理解:组合模式 (composite)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
组合模式(composite pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。
例如 在c# winform 应用程序编程中 radiobutton控件是单选按钮控件 ,groupbox 控件是控件组,是装入其他控件或其他控件组的容器。当groupbox设置为disable时,那么其子控件和子groupbox也要变成disable。如何实现这样的级联?把控件组视为一个(整体)对象,当(整体)对象的属性发生变化时,其中的(部分)子对象属性也跟着变化?这就需要利用到组合模式,利用树形结构进行递归,完成“整体-部分”的批量处理。其中像控件组这样的对象在下图中是composite,像其他单控件如 radiobutton,button等在下图中是leaf,他们共同继承于控件的抽象类widget
class iwidget{virtual void disable() = 0;virtual void visible() = 0; } /**单控件类.....*/ class radiobutton:public iwidget{private :bool isvisited_;public :radiobutton(){isvisited_ =true;}virtual void disable(){isvisited_ =false;}virtual void visible(){isvisited_ =true;} } class button:public iwidget{private :bool isvisited_;public :button(){isvisited_ =true;}virtual void disable(){isvisited_ =false;}virtual void visible(){isvisited_ =true;} }/**iwidget集合类.....*/ class groupbox:public iwidget{private :bool isvisited_;vector
总结
以上是ag凯发k8国际为你收集整理的设计模式的理解:组合模式 (composite)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 设计模式的理解:状态模式(state)
- 下一篇: 设计模式的理解:迭代器模式(iterat