【程序员】看了这篇你将彻底了解组合模式( 七 )
s.getInfo;
}
}
}
@Override
public void doSomething(String notice) {
System.out.println(this.name+","+this.position+","+notice);
}
//通知手下的方法
public void notifyStaff(String notice1,String notice2){
if(this.subordinateList !=){
for(Staff s:subordinateList){
//如果手下是程序员 , 调用程序员的接收通知的方法
//手下是管理者 , 调用管理者的接收通知的方法 , 同时将通知再向下级传递
s.doSomething(notice2);
s.notifyStaff(notice1,notice2);
}
}
}
}
这个类比较复杂 , 处理实现了获取个人信息和接收通知的方法外 , 还重写了增加 , 删除 , 查看下属员工的方法 , 以及发布通知的方法 。
客户端:
package Composite;
public class Client {
public static void main(String[] args) throws InterruptedException {
Staff boss = new Manager("李大头","老板");
Staff RDManger = new Manager("张三","研发部经理");
Staff marketingManager = new Manager("李四","市场部经理");
Staff group1 = new Manager("王五","研发部组长一");
Staff group2 = new Manager("赵六","研发部组长二");
Staff programmer1 = new Programmer("小强","java程序员");
Staff programmer2 = new Programmer("小华","java程序员");
Staff programmer3 = new Programmer("小甲","python程序员");
Staff programmer4 = new Programmer("小乙","c++程序员");
boss.addSubordinate(RDManger);
boss.addSubordinate(marketingManager);
RDManger.addSubordinate(group1);
RDManger.addSubordinate(group2);
group1.addSubordinate(programmer1);
group1.addSubordinate(programmer2);
group2.addSubordinate(programmer3);
group2.addSubordinate(programmer4);
boss.notifyStaff("今晚加班","来开会");
System.out.println("---------------------");
boss.getInfo;
}
}
在这里能够看出 , 普通员工和管理者没有任何区别 , 客户端不需要区分组合对象和叶子对象了 , 统一使用组件对象(Staff),调用的方法也是在组件对象中定义的方法 。
运行结果:
张三,研发部经理,来开会
王五,研发部组长一,来开会
小强,java程序员,来开会
小华,java程序员,来开会
赵六,研发部组长二,来开会
小甲,python程序员,来开会
小乙,c++程序员,来开会
李四,市场部经理,来开会
---------------------
姓名:李大头 , 职位:老板
姓名:张三 , 职位:研发部经理
姓名:王五 , 职位:研发部组长一
姓名:小强 , 职位:java程序员
姓名:小华 , 职位:java程序员
姓名:赵六 , 职位:研发部组长二
姓名:小甲 , 职位:python程序员
姓名:小乙 , 职位:c++程序员
姓名:李四 , 职位:市场部经理
- 小谢娱乐哦引来广大网友狂点赞,直呼炸天,程序员用Java实现扫雷小游戏
- #作文#这届小学生脑路清奇,贡献了一波神作文,老师看了连呼佩服佩服
- 5G芯片高通骁龙865潜力有多大?看了这些就知道
- Python爱好者社区漫画 | 程序员逆天改命
- 小猪搞机看了这六点,让你了解 iQOO Neo3为什么值得入手!
- 零度科技汇网友:看了都想买,这几款搭载骁龙865处理器的5G手机性价比高
- 35岁程序员被电信云、华为和阿里同时录取,看到薪资比较后,酸了
- 零度科技汇这几款搭载骁龙865处理器的5G手机性价比高,网友:看了都想买
- 扫地机器人哪个牌子好?看完这篇选购攻略就知道了
- 卟科技还敢小看国产手机厂商吗?,国产双雄攻霸欧洲市场!苹果看了胆颤