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