GOF23的一些总结(九)
来源:互联网 发布:mac mini显示器接口 编辑:程序博客网 时间:2024/05/16 08:45
组合模式核心:把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。
组合模式核心:抽象构件角色:定义了叶子和容器构件的共同点。
叶子构件角色:无子节点。
容器构建角色:有容器特征,可以包含子节点。
package com.dasenlin.cn;import java.util.ArrayList;import java.util.List;/** * 抽象的文件 * @author Administrator * */public interface AbstructFile { void killVirus();//杀毒}/** * 叶子模式 * @author Administrator * */class InagesFile implements AbstructFile{ private String name; public InagesFile(String name) { super(); this.name = name; } @Override public void killVirus() { System.out.println("图像文件"+ name); }}/** * 组合模式 * @author Administrator * */class Folder implements AbstructFile{ private String name; private List <AbstructFile> list = new ArrayList<AbstructFile>(); public Folder(String name) { super(); this.name = name; } public void add(AbstructFile file){ list.add(file); } public void remove(AbstructFile file){ list.remove(file); } public AbstructFile getChild(int index){ return list.get(index); } @Override public void killVirus() { System.out.println("文件名:"+name+"正在查杀"); for(AbstructFile file:list){ file.killVirus(); } }}
测试
package com.dasenlin.cn;public class Client { /** * @param args */ public static void main(String[] args) { AbstructFile f2; Folder f1 = new Folder("我的手长"); f2 = new InagesFile("大头贴"); f1.add(f2); f1.killVirus(); }}
0 0
- GOF23的一些总结(九)
- GOF23的一些总结(一)
- GOF23的一些总结(二)
- GOF23的一些总结(三)
- GOF23的一些总结(四)
- GOF23的一些总结(五)
- GOF23的一些总结(六)
- GOF23的一些总结(七)
- GOF23的一些总结(八)
- GOF23的一些总结(十)
- GOF23的一些总结(十一)
- GOF23的一些总结(十二)
- GOF23的一些总结(十三)
- GOF23的一些总结(十四)
- GOF23的一些总结(十五)
- GOF23的一些总结(十六)
- GOF23的一些总结(十八)
- GOF23的一些总结(十九)
- setOff与scrollTop区别
- zmodem transfer cancled by remote side
- Android 全局异常捕获
- 23种代码坏味道
- Genymotion常见问题整合与解决方案
- GOF23的一些总结(九)
- Got error 28 from storage engine 解决方法
- SQL语句执行效率及分析
- 编码体系
- intellij IDEA--- 报inspects a maven model for resolution problems
- SQL语句执行效率及分析
- JQuery中$.each 和$(selector).each()的区别
- iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么
- OpenFace