组合模式
来源:互联网 发布:2016淘宝骗保师获刑 编辑:程序博客网 时间:2024/06/11 03:07
把一组相似的对象当作一个单一的对象。
将对象组合成树形结构以表示“部分-整体”的层次机构。
被操作的对象,该对象带有该类的对象列表:
import java.util.ArrayList;import java.util.List;public class Employee { private String name; private String dept; private int salary; private List<Employee> subordinates; //构造函数 public Employee(String name,String dept, int sal) { this.name = name; this.dept = dept; this.salary = sal; subordinates = new ArrayList<Employee>(); } public void add(Employee e) { subordinates.add(e); } public void remove(Employee e) { subordinates.remove(e); } public List<Employee> getSubordinates(){ return subordinates; } public String toString(){ return ("Employee :[ Name : "+ name +", dept : "+ dept + ", salary :" + salary+" ]"); } }
public class CompositePatternDemo { public static void main(String[] args) { Employee CEO = new Employee("John","CEO", 30000); Employee headSales = new Employee("Robert","Head Sales", 20000); Employee headMarketing = new Employee("Michel","Head Marketing", 20000); Employee clerk1 = new Employee("Laura","Marketing", 10000); Employee clerk2 = new Employee("Bob","Marketing", 10000); Employee salesExecutive1 = new Employee("Richard","Sales", 10000); Employee salesExecutive2 = new Employee("Rob","Sales", 10000); CEO.add(headSales); CEO.add(headMarketing); headSales.add(salesExecutive1); headSales.add(salesExecutive2); headMarketing.add(clerk1); headMarketing.add(clerk2); //打印该组织的所有员工 System.out.println(CEO); for (Employee headEmployee : CEO.getSubordinates()) { System.out.println(headEmployee); for (Employee employee : headEmployee.getSubordinates()) { System.out.println(employee); } } }}
阅读全文
0 0
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- Linux邮件服务器的搭建-详细步骤
- 得到一个m长度都为n的数组
- Android WiFi 权限、广播、连接、踩坑相关记录
- Python-OpenCV 处理图像(五):图像中边界和轮廓检测
- Python 对Excel操作读写
- 组合模式
- Web遇见的小问题
- SAX方式解析XML文件的方法分析,并取特定字段生成对象
- 【蓝桥杯】【猜年龄】
- Dialog 之高仿IOS
- 成为一名自由UX设计师--你“够格”吗?
- 图解MapReduce各种join的使用
- 序列化
- Java菜鸟到大牛学习路线