设计模式之组合模式

March 22, 2016

设计模式与设计原则

组合模式

组合模式:将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和使用具有一致性。

组合模式的几个角色:

  1. Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component
    子部件。
  2. Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。
  3. Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除

Andriod 里的组合模式

在 Android 里,View 的设计是符合组合模式的。在组合模式里,Leaf 和 Composite 都是继承于 Component 接口,Composite 里包含了若干个 Leaf 和 Composite 。而 Android 的 View 的设计,View 本身就是 Composite ,并且是 Leaf,而 ViewGroup 继承于 View,ViewGroup 又包含了若干的 View 或者 ViewGroup。同时 ViewGroup 也提供了增加和删除 View 的方法 API。

组合模式是符合开闭原则的,新增的 component 实现类都不需要修改已有的代码。在Android 项目中,咱们经常需要自定义控件,自定义组合控件,都不需要对原来的控件做修改。

其实不只在 Android 平台上,在其他平台上,比如 .Net ,HTML 等,都采用组合模式来设计界面的组件。

23种设计模式

--- EOF ---

添加新评论