首页 / 设计模式 / 基于JAVA的设计模式之组合模式
基于JAVA的设计模式之组合模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于JAVA的设计模式之组合模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2091字,纯文字阅读大概需要3分钟。
内容图文
- 概念
将所有对象组合成一种树形结构,有分支节点、叶子节点,分支节点可以有自己的子节点,子节点可以是分支节点、叶子节点,可以进行增删的操作,而叶子节点不可以。比如文件夹就是一个分支节点,而文件就是一个叶子节点。用于遍历组织结构或者处理树形对象。父类引用指向派生类对象(Compoent->Document,Folder)。
- 类图
- 代码
public abstract class Component { public void add(Component component){ //新建文件夹或文件 } public void remove(Component component){ //删除文件夹或文件 } public void print(){ //打印 } public String getName(){ //名字 return null; } public String getType(){ //类型 return null; } } //文件类 叶子类 不能操作孩子 即不能有add remove public class Document extends Component { private String name; private String type; public Document(String name,String type){ this.name=name; this.type=type; } @Override public void print() { System.out.println(type+":"+name); } @Override public String getName() { return this.name; } @Override public String getType() { return this.type; } }
//文件夹类 孩子可以是文件夹也可以是文件 public class Folder extends Component{ private String name; private String type; private List<Component>components=new ArrayList<Component>(); public Folder(String name,String type){ this.name=name; this.type=type; } @Override public void add(Component component) { components.add(component); } @Override public void remove(Component component) { components.remove(component); } @Override public void print() { System.out.println(type+":"+name); for (Component component: components) { component.print(); } } @Override public String getName() { return this.name; } @Override public String getType() { return this.type; } } public class Main { public static void main(String[] args) { Folder desktop=new Folder("桌面","文件夹"); Folder c=new Folder("c:","文件夹"); Folder childFolder=new Folder("新建文件夹","文件夹"); Document d1=new Document("pig.jpg","文件"); Document d2=new Document("duck.png","文件"); childFolder.add(d1); childFolder.add(d2); c.add(childFolder); Folder d=new Folder("d:","文件夹"); Document d3=new Document("git.txt","文件"); d.add(d3); Folder e=new Folder("e:","文件夹"); desktop.add(c); desktop.add(d); desktop.add(e); desktop.print(); } }
内容总结
以上是互联网集市为您收集整理的基于JAVA的设计模式之组合模式全部内容,希望文章能够帮你解决基于JAVA的设计模式之组合模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】