打字猴:1.70046791e+09
1700467910 仔细看看这个类图,还能不能发现点问题。想想看接口的作用是什么?定义一类事物所具有的共性,那ILeaf和IBranch是不是也有共性呢?有,getInfo方法!我们是不是要把这个共性也封装起来呢?是的,是的,提炼事物的共同点,然后封装之,这是我们作为设计专家的拿手好戏,修改后的类图如图21-4所示。
1700467911
1700467912
1700467913
1700467914
1700467915 图21-4 修改后的类图
1700467916
1700467917 类图上增加了一个ICorp接口,它是公司所有人员信息的接口类,不管你是经理还是员工,你都有名字、职位、薪水,这个定义成一个接口没有错,但是你可能对于ILeaf接口持怀疑状态,空接口有何意义呀?有意义!它是每个树枝节点的代表,系统扩容的时候你就会发现它是多么“栋梁”。我们先来看新增加的接口ICorp,如代码清单21-8所示。
1700467918
1700467919 代码清单21-8 公司人员接口
1700467920
1700467921 public interface ICorp{
1700467922
1700467923 //每个员工都有信息,你想隐藏,门儿都没有!
1700467924
1700467925 public String getInfo();
1700467926
1700467927 }
1700467928
1700467929 接口很简单,只有一个方法,就是获得员工的信息,树叶节点是最基层的构件,我们先来看看它的接口,空接口,如代码清单21-9所示。
1700467930
1700467931 代码清单21-9 树叶接口
1700467932
1700467933 public interface ILeaf extends ICorp{
1700467934
1700467935 }
1700467936
1700467937 树叶接口的实现类,如代码清单21-10所示。
1700467938
1700467939 代码清单21-10 树叶接口
1700467940
1700467941 public class Leaf implements ILeaf{
1700467942
1700467943 //小兵也有名称
1700467944
1700467945 private String name=””;
1700467946
1700467947 //小兵也有职位
1700467948
1700467949 private String position=””;
1700467950
1700467951 //小兵也有薪水,否则谁给你干
1700467952
1700467953 private int salary=0;
1700467954
1700467955 //通过一个构造函数传递小兵的信息
1700467956
1700467957 public Leaf(String name,String position,int salary){
1700467958
1700467959 this.name=name;
[ 上一页 ]  [ :1.70046791e+09 ]  [ 下一页 ]