组合模式(Composite Pattern)
2016-05-24 11:55
204 查看
组合模式:把一组相似的对象当成一个单一的对象,依据树形结构来组合对象,用来表示部分和整体层次。
举一个管理公司员工的例子:
测试代码:
组合模式适合处理树形结构问题,如树形菜单,文件夹文件管理。
举一个管理公司员工的例子:
public class Employee { private String name; private String dept; private double salary; private List<Employee> sub; public Employee(String n,String d,int s) { name = n; dept = d; salary = s; sub = new ArrayList<Employee>(); } public void add(Employee e) { sub.add(e); } public void remove(Emplyee e) { sub.remove(e); } public List<Employee> getSub() { return sub; }
public String toString() { return "Name:" + name + "dept:" + depr + "salary:" + salary; } }
测试代码:
Employee CEO = new Employee("A0","CEO",30000); Employee headMarketing = new Employee("B0","Head Marketing", 20000); Employee clerk1 = new Employee("C0","Marketing",10000); Employee clerk2 = new Employee("C1","Marketing",10000); Employee headSales = new Employee("B1","Head Sales",20000); Employee sale1 = new Employee("C2","Marketing",10000); Employee sale2 = new Employee("C3","Marketing",10000); CEO.add(headMarking); //CEO管理headMarking CEO.add(headSales); // CEO管理headSales headMarking.add(clerk1); //headMarking管理两个人 headMarking.add(clerk2); headSales.add(sale1); //headSales管理两个人 headSales.add(sale2); //打印所有员工 System.out.println(CEO); for(Employee e1 : CEO.getSub()) { System.out.println(e1); for(Employee e2: e1.getSub()) { System.out.println(e2); } }
组合模式适合处理树形结构问题,如树形菜单,文件夹文件管理。
相关文章推荐
- ThreadLocal的使用在Tomcat的服务环境下要注意
- jQuery中事件与动画的总结分享
- iOS开发之适配IPV6更新网络处理为AFNetworking3.x, 集成以及遇到的一些问题总结。
- iOS后台定位
- andrroid 动画 oncreate 和 onclick 启动方式
- Eclipse 一直不停 building workspace 完美解决总结
- 小米路由+花生壳动态域名搭建web服务
- 编译器自动优化导致代码可以先后写的问题
- 解决sublime text3中文乱码问题
- 《Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系》观后感
- Windows消息队列MQ的使用
- clang llvm 源码编译安装
- 冒泡排序及其改进
- GitHub中的开源组件推荐
- ListView上添加悬浮按钮Button or ImageButto
- http服务器与cgi交互过程
- JavaFX制作水墨大写意画板程序
- 自学android笔记之TabLayout结合ViewPager和Fragment实现多页面滑动
- window.location.hash 属性使用说明
- Spark数据分析之第2课