1组合模式的基础知识
1概念:将对象以树形结构组织起来使对象达成“整体—部分”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。能将复杂对象处理成为简单的元素,达到解耦
2使用场景:
2.1.使得对一个对象的使用可以忽略其部分到整体层次的差异
2.2.让客户端可以忽略不同对象的层次变化
例如:Viewgroup中就是这样使用的,这样设计使得递归时候的负责度不会递增,
2.2.让客户端可以忽略不同对象的层次变化
例如:Viewgroup中就是这样使用的,这样设计使得递归时候的负责度不会递增,
3组合模式的优点:
3.1.高层模块调用简单,调用的时候只要调用抽象的component就可以
3.2.节点自由增加,继承抽象类的子类可以自由随意的增加
3.1.高层模块调用简单,调用的时候只要调用抽象的component就可以
3.2.节点自由增加,继承抽象类的子类可以自由随意的增加
4.UML结构图
5.代码部分(为节省时间这里采用贴图)
首先来看我们的抽象类,就是所有的层次都要继承它
接下来是继承该类的子类
和另一个子类
接下来是客户端的调用
2组合模式在Android中的具体使用
首先说一点,Android中view是树形结构
先来看看view与viewgroup的关系
重点,viewgroup是抽象类,是view的子类,并且实现了ViewParent和ViewManager两个接口
先来看
ViewManager
看得出是对view的增加删除等操作
怎么样,清楚了没有
接下来是viewparent
是对view的更新,一旦我们的布局有了更改,会同过各个方法来实现对布局的更新
所以,上面两个接口就是ViewGroup与View的另一个区别