大话设计模式 组合模式
来源:互联网 发布:阿里云系统盘和数据盘 编辑:程序博客网 时间:2024/06/03 09:28
总公司和分公司
package org.ustc.composite;public abstract class Company {protected String companyName;public Company(String companyName) {super();this.companyName = companyName;}public abstract void add(Company c);public abstract void remove(Company c);public abstract void display(int depth);public abstract void duty();}
package org.ustc.composite;import java.util.ArrayList;import java.util.List;public class ConcreteCompany extends Company{private List<Company> companys;public ConcreteCompany(String companyName) {super(companyName);// TODO Auto-generated constructor stubcompanys = new ArrayList<Company>();}@Overridepublic void add(Company c) {// TODO Auto-generated method stubcompanys.add(c);}@Overridepublic void remove(Company c) {// TODO Auto-generated method stubcompanys.remove(c);}@Overridepublic void duty() {// TODO Auto-generated method stubfor(Company c:companys)c.duty();}@Overridepublic void display(int depth) {// TODO Auto-generated method stubfor(int i=0;i<depth;i++){System.out.print("-");}System.out.println(this.companyName);for(Company c:companys){c.display(depth+2);}}}
package org.ustc.composite;public class HResourceDepartment extends Company{public HResourceDepartment(String companyName) {super(companyName);// TODO Auto-generated constructor stub}@Overridepublic void add(Company c) {// TODO Auto-generated method stub}@Overridepublic void remove(Company c) {// TODO Auto-generated method stub}@Overridepublic void display(int depth) {// TODO Auto-generated method stubfor(int i=0;i<depth;i++)System.out.print("-");System.out.println(this.companyName);}@Overridepublic void duty() {// TODO Auto-generated method stubSystem.out.println("培训员工");}}
package org.ustc.composite;public class FinanceDepartment extends Company {public FinanceDepartment(String companyName) {super(companyName);// TODO Auto-generated constructor stub}@Overridepublic void add(Company c) {// TODO Auto-generated method stub}@Overridepublic void remove(Company c) {// TODO Auto-generated method stub}@Overridepublic void display(int depth) {// TODO Auto-generated method stubfor(int i=0;i<depth;i++)System.out.print("-");System.out.println(companyName);}@Overridepublic void duty() {// TODO Auto-generated method stubSystem.out.println("处理财务");}}
package org.ustc.composite;public class Main {public static void main(String[] args) {Company root = new ConcreteCompany("北京总公司");root.add(new FinanceDepartment("总公司财务部"));root.add(new HResourceDepartment("总公司人力资源部"));Company eastern = new ConcreteCompany("华东公司");Company Nanjing = new ConcreteCompany("南京办事处");eastern.add(Nanjing);Nanjing.add(new FinanceDepartment("南京办事处人力资源"));root.add(eastern);root.display(1);}}
- 大话设计-组合模式
- 大话设计模式-组合模式
- 大话设计模式 组合模式
- 大话设计模式-组合模式
- 大话设计模式-组合模式
- 大话设计模式之组合模式
- 大话设计模式_组合模式
- 大话设计模式之组合模式
- 大话设计模式之组合模式
- 大话设计模式—组合模式
- 大话设计模式19----组合模式
- 大话设计模式笔记之组合模式
- 大话设计模式之组合模式
- 大话设计模式读书笔记之组合模式
- 大话设计模式-组合模式学习总结
- 大话设计模式8 组合模式 迭代器模式
- 大话设计模式学习(十四)——组合模式
- 大话设计模式--组合模式 Composite -- C++实现实例
- Ojective-C 回顾、总结
- VC++ List Box控件 详解1
- 移动电子商务网站可用性-首页和导航
- C++第9周项目1 - 实现复数类中的运算符重载
- apache服务器使用wsgi部署django站点
- 大话设计模式 组合模式
- windows 下自动 ping 服务器的小脚本
- 关于安卓高版本访问网络出现.NetworkOnMainThreadException异常的问题 .
- VC++ List Box 控件 详解2
- strtol函数
- centos 安装libpcap
- 关于Java性能九大谬论 你知道哪些?
- 如何在Eclipse中显示行号
- VC++ List Box 控件 详解3