1700468172
1700468173
secondDevGroup.addSubordinate(d);
1700468174
1700468175
secondDevGroup.addSubordinate(e);
1700468176
1700468177
secondDevGroup.addSubordinate(f);
1700468178
1700468179
//再看销售部下的人员情况
1700468180
1700468181
salesDep.addSubordinate(h);
1700468182
1700468183
salesDep.addSubordinate(i);
1700468184
1700468185
//最后一个财务
1700468186
1700468187
financeDep.addSubordinate(j);
1700468188
1700468189
return root;
1700468190
1700468191
}
1700468192
1700468193
//遍历整棵树,只要给我根节点,我就能遍历出所有的节点
1700468194
1700468195
public static String getTreeInfo(Branch root){
1700468196
1700468197
ArrayList<ICorp>subordinateList=root.getSubordinate();
1700468198
1700468199
String info=””;
1700468200
1700468201
for(ICorp s:subordinateList){
1700468202
1700468203
if(s instanceof Leaf){//是员工就直接获得信息
1700468204
1700468205
info=info+s.getInfo()+”\n”;
1700468206
1700468207
}else{//是个小头目
1700468208
1700468209
info=info+s.getInfo()+”\n”+getTreeInfo((Branch)s);
1700468210
1700468211
}
1700468212
1700468213
}
1700468214
1700468215
return info;
1700468216
1700468217
}
1700468218
1700468219
}
1700468220
1700468221
运行结果完全相同,不再赘述。通过这样构件,一个非常清晰的树状人员资源管理图出现了,那我们的程序是否还可以优化?可以!你看Leaf和Branch中都有getInfo信息,是不是可以抽象?好,我们抽象一下,如图21-5所示。
[
上一页 ]
[ :1.700468172e+09 ]
[
下一页 ]