设计模式之组合模式
来源:互联网 发布:怎样申请淘宝子账号 编辑:程序博客网 时间:2024/06/05 15:16
组合模式的使用场景:
把整体和部分的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象构件和整体(由于实现统一的抽象构件接口cmponent)
组合模式的核心:
1.抽象构件角色(component) 定义叶子和容器的共同点
2.容器构件角色(composite) 有字节点和容器特点
3.叶子构件角色(leaf) 没有子节点
实现代码:
//componentpublic interface AbstractFile { void killVirus(); //杀毒}//leafclass ImageFile implements AbstractFile { private String name; public ImageFile(String name) { super(); this.name = name; } @Override public void killVirus() { System.out.println("---图像文件:"+name+",进行查杀!"); }}class TextFile implements AbstractFile { private String name; public TextFile(String name) { super(); this.name = name; } @Override public void killVirus() { System.out.println("---文本文件:"+name+",进行查杀!"); }}class VideoFile implements AbstractFile { private String name; public VideoFile(String name) { super(); this.name = name; } @Override public void killVirus() { System.out.println("---视频文件:"+name+",进行查杀!"); }}//compositeclass Folder implements AbstractFile { private String name; //定义容器,用来存放本容器构建下的子节点 private List<AbstractFile> list = new ArrayList<AbstractFile>(); public Folder(String name) { super(); this.name = name; } public void add(AbstractFile file){ list.add(file); } public void remove(AbstractFile file){ list.remove(file); } public AbstractFile getChild(int index){ return list.get(index); } @Override public void killVirus() { System.out.println("---文件夹:"+name+",进行查杀"); for (AbstractFile file : list) { file.killVirus();//这是一个递归 } }}
开发中的使用场景:
html也是
UML图
junit测试框架底层设计
、
阅读全文
0 0
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之--组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之---组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之-------------组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式 之 组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- linux环境下编译链接汇编语言
- win10交换Caps和Ctrl
- SQL Server 2005 (64)免费下载并配置网络
- 学习笔记TF044:TF.Contrib组件、统计分布、Layer、性能分析器tfprof
- 阿里2017年校招
- 设计模式之组合模式
- 多态及其多态类型转换
- Android fragment解析
- 安卓EventBus 两步走
- XML解析(二):SAX解析
- 【C++数据结构与算法】括号匹配算法
- 哪种情况会导致持久区jvm堆内存溢出
- 二分图的最大匹配、完美匹配和匈牙利算法
- 仿联系人的排序