java设计模式--组合模式(9)
来源:互联网 发布:c语言中str 编辑:程序博客网 时间:2024/05/18 02:07
名称 : Composite
结构:
意图:
将对象组合成树形结构以表示“部分-整体”的层次结构。C o m p o s i t e 使得用户对单个对象和组合对象的使用具有一致性。
适用性:
- 你想表示对象的部分-整体层次结构。
- 你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
实例:
Employee.java
package Composite_Pattern;import java.util.List;public abstract class Employer { public List employers; private String name; public void setName(String name) { this.name = name; } public String getName() { return this.name; } public abstract void add(Employer employer); public abstract void delete(Employer employer); public void printInfo(){ System.out.println(name); } public List getEmployers() { return this.employers; }}
Programmer.java
package Composite_Pattern;public class Programmer extends Employer{ public Programmer(String name) { setName(name); employers = null; //程序员, 表示没有下属了 } public void add(Employer employer) { } public void delete(Employer employer) { }}
ProjectAssistant.java
package Composite_Pattern;public class ProjectAssistant extends Employer{public ProjectAssistant(String name) { setName(name); employers = null; //项目助理, 表示没有下属了 }@Overridepublic void add(Employer employer) {}@Overridepublic void delete(Employer employer) {}}
ProjectManager.java
package Composite_Pattern;import java.util.ArrayList;public class ProjectManager extends Employer { public ProjectManager(String name) { setName(name); employers = new ArrayList(); //项目经理下面有一大帮人 } public void add(Employer employer) { employers.add(employer); } public void delete(Employer employer) { employers.remove(employer); }}
测试 Test.java
package Composite_Pattern;import java.util.List;public class Test { public static void main(String[] args) { Employer pm = new ProjectManager("项目经理"); Employer pa = new ProjectAssistant("项目助理"); Employer programmer1 = new Programmer("程序员一"); Employer programmer2 = new Programmer("程序员二"); pm.add(pa);//为项目经理添加项目助理 pm.add(programmer2);//为项目经理添加程序员2 List<Employer> ems = pm.getEmployers(); for (Employer em : ems) { em.printInfo(); } }}
总结: 组合模式,这个用例是网上找的。
- java设计模式--组合模式(9)
- JAVA设计模式 -- 组合模式
- JAVA设计模式:组合模式
- Java 设计模式-组合模式
- java设计模式-组合模式
- Java设计模式--组合模式
- Java设计模式--组合模式
- Java设计模式----组合模式
- JAVA设计模式(组合模式)
- JAVA设计模式--组合模式
- java设计模式--组合模式
- java设计模式--组合模式
- JAVA 设计模式 组合模式
- java设计模式---组合
- java设计模式--组合
- Java组合设计模式
- 设计模式--结构模式--组合模式--Java
- 设计模式(9) ------- 组合模式
- 复习之冒泡排序
- LAMP+Tomcat【纠正版 修改于2011年9月12日 20:09:41】
- C#数据结构和算法学习系列七----队列、队列的实现和应用
- C++中extern “C”含义深层探索
- C/C++中 static 的用法
- java设计模式--组合模式(9)
- Linux下root无法运行Chrome浏览器的解决方法
- Word 2007 中创建目录的方法
- windows与ubuntu文件共享
- 今年需要做的几件事情
- ubuntu更改用户和用户密码
- 使用闪回查询恢复误码删除的数据
- 可以自定义导出数据库的表结构(视图)的一个存储过程
- div+css布局