android 组合模式

1意图

  将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.,就是调用单个对象,和组合对象的方法尽量统一起来,当你想到树形结构的时候,你应该首先想到组合模式。

2结构


3代码



public class Main {
public static void main(String[] args) {
Composite root=new Composite();
root.setName("根节点");
Composite left=new Composite();
left.setName("左子树");
Leaf leftLeaf=new Leaf();
leftLeaf.setName("左子树的叶子");
left.add(leftLeaf);
Composite right=new Composite();
right.setName("右子树");
Leaf rightLeaf=new Leaf();
rightLeaf.setName("右子树的叶子");
right.add(rightLeaf);
root.add(left);
root.add(right);
root.eachChild();
}


}
abstract class Component{
public String name;
public abstract void add(Component component);
public abstract void remove(Component component);
public abstract void eachChild();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Composite extends Component{
private List<Component>list=new ArrayList<Component>();
@Override
public void add(Component component) {
list.add(component);
}


@Override
public void remove(Component component) {
// TODO Auto-generated method stub
list.remove(component);
}


@Override
public void eachChild() {
System.out.println("组合节点的名字:"+name);
for(Component component:list){
component.eachChild();
}
}

}
class Leaf extends Component{


@Override
public void add(Component component) {

}


@Override
public void remove(Component component) {

}


@Override
public void eachChild() {
System.out.println("叶子节点的名字:"+name);
}

}

4在android源码中的体现



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值