打字猴:1.70046786e+09
1700467860
1700467861 }
1700467862
1700467863 }
1700467864
1700467865 这个程序比较长,如果在我们的项目中有这样的程序,肯定是要被拉出来做典型的,你写一大坨的程序给谁呀,以后还要维护,程序要短小精悍!幸运的是,我们这是作为案例来讲解,而且就是指出这样组装这棵树是有问题的,等会我们深入讲解,先看运行结果:
1700467866
1700467867 名称:王大麻子 职位:总经理 薪水:100000
1700467868
1700467869 名称:刘大瘸子 职位:研发部门经理 薪水:10000
1700467870
1700467871 名称:杨三乜斜 职位:开发一组组长 薪水:5000
1700467872
1700467873 名称:a 职位:开发人员 薪水:2000
1700467874
1700467875 名称:b 职位:开发人员 薪水:2000
1700467876
1700467877 名称:c 职位:开发人员 薪水:2000
1700467878
1700467879 名称:吴大棒槌 职位:开发二组组长 薪水:6000
1700467880
1700467881 名称:d 职位:开发人员 薪水:2000
1700467882
1700467883 名称:e 职位:开发人员 薪水:2000
1700467884
1700467885 名称:f 职位:开发人员 薪水:2000
1700467886
1700467887 名称:郑老六 职位:研发部副总 薪水:20000
1700467888
1700467889 名称:马二拐子 职位:销售部门经理 薪水:20000
1700467890
1700467891 名称:h 职位:销售人员 薪水:5000
1700467892
1700467893 名称:i 职位:销售人员 薪水:4000
1700467894
1700467895 名称:赵三驼子 职位:财务部经理 薪水:30000
1700467896
1700467897 名称:j 职位:财务人员 薪水:5000
1700467898
1700467899 名称:k 职位:CEO秘书 薪水:8000
1700467900
1700467901 和我们期望的结果一样,一棵完整的树就生成了,而且我们还能够遍历。不错,不错,但是看类图或程序的时候,你有没有发觉有问题?getInfo每个接口都有,为什么不能抽象出来?Root类和Branch类有什么差别?根节点本身就是树枝节点的一种,为什么要定义成两个接口两个类?如果我要加一个任职期限,你是不是每个类都需要修改?如果我要后序遍历(从员工找到他的上级领导)能做到吗?——彻底晕菜了!
1700467902
1700467903 问题很多,我们一个一个解决,先说抽象的问题。我们确实可以把IBranch和IRoot合并成一个接口,确认无疑的事我们先做,那我们就修改一下类图,如图21-3所示。
1700467904
1700467905
1700467906
1700467907
1700467908 图21-3 整合根节点和树枝节点后的类图
1700467909
[ 上一页 ]  [ :1.70046786e+09 ]  [ 下一页 ]