设计模式与设计原则

设计模式之组合模式

组合模式

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

组合模式的几个角色:

  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

本文作者:Binkery
本文地址:https://binkery.com/archives/503.html
版权声明:欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果