设计模式之组合模式

组合模式:
定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.
优点:1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。
2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。
举例:像数据结构里面的树,想要对每个叶子节点都进行操作的话,用这个模式就比较的好.
下面我举例代码:

package com.mode.composite;

public interface Composite {
void update();
void add(Composite composite) throws Exception;
}


package com.mode.composite;

import java.util.ArrayList;
import java.util.List;

public class Branch implements Composite{
List<Composite> compositeList = new ArrayList<Composite>();
@Override
public void update() {
for(Composite com:compositeList){
com.update();
}
}

@Override
public void add(Composite composite) {
compositeList.add(composite);
}

}


package com.mode.composite;

public class Leaf implements Composite{

@Override
public void update() {
System.out.println("Leaf.update()"+this);
}

@Override
public void add(Composite composite)throws Exception {
throw new Exception("叶子节点不能再添加");
}

}


package com.mode.composite;

public class Client {
public static void main(String[] args) throws Exception {
Composite root = new Branch();
Composite branch = new Branch();

root.add(new Leaf());
root.add(new Leaf());
root.add(branch);

branch.add(new Leaf());
branch.add(new Leaf());

root.update();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值