设计模式———组合模式

1组合模式的基础知识

1概念:将对象以树形结构组织起来使对象达成“整体—部分”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。能将复杂对象处理成为简单的元素,达到解耦

2使用场景:
2.1.使得对一个对象的使用可以忽略其部分到整体层次的差异
2.2.让客户端可以忽略不同对象的层次变化
例如:Viewgroup中就是这样使用的,这样设计使得递归时候的负责度不会递增,

3组合模式的优点:
3.1.高层模块调用简单,调用的时候只要调用抽象的component就可以
3.2.节点自由增加,继承抽象类的子类可以自由随意的增加

4.UML结构图

5.代码部分(为节省时间这里采用贴图)


首先来看我们的抽象类,就是所有的层次都要继承它

接下来是继承该类的子类

和另一个子类

接下来是客户端的调用

2组合模式在Android中的具体使用

首先说一点,Android中view是树形结构
先来看看view与viewgroup的关系


重点,viewgroup是抽象类,是view的子类,并且实现了ViewParent和ViewManager两个接口
先来看 ViewManager

看得出是对view的增加删除等操作

怎么样,清楚了没有

接下来是viewparent
是对view的更新,一旦我们的布局有了更改,会同过各个方法来实现对布局的更新

所以,上面两个接口就是ViewGroup与View的另一个区别

又回到上面的一点,viewgroup是个抽象方法,举个例子,他的onlayout是个抽象方法,也就是子类必须实现该方法才能实现布局定位,而view中onlayout是一个具体方法,并且是个空实现,就是说没有具体内容的方法,因为view内部是不会去放置view的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值