技术开发 频道

组合模式:实战人事管理之树状结构

  小兵就只有这些信息了,我们是具体干活的,我们是管理不了其他同事的,我们来看看那些经理和小组长是怎么实现的,也就是IBranch接口,如代码清单21-11所示。

  代码清单21-1 树枝接口

public interface IBranch extends ICorp {    
    
//能够增加小兵(树叶节点)或者是经理(树枝节点)
    public void addSubordinate(ICorp corp);
    
//我还要能够获得下属的信息
    public ArrayList<ICorp> getSubordinate();
    
/*本来还应该有一个方法delSubordinate(ICorp corp),删除下属
     * 这个方法我们没有用到就不写进来了
    
*/
}

  接口也很简单,其实现类也不可能太复杂,如代码清单21-12所示。

  代码清单21-12 树枝实现类

public class Branch implements IBranch {
    
//领导也是人,也有名字
    private String name = "";
    
//领导和领导不同,也是职位区别
    private String position = "";
    
//领导也是拿薪水的
    private int salary = 0;
    
//领导下边有那些下级领导和小兵
    ArrayList<ICorp> subordinateList = new ArrayList<ICorp>();
    
//通过构造函数传递领导的信息
    public Branch(String name,String position,int salary){
        
this.name = name;
        
this.position = position;
        
this.salary = salary;
    }
    
//增加一个下属,可能是小头目,也可能是个小兵
    public void addSubordinate(ICorp corp) {
        
this.subordinateList.add(corp);
    }
    
//我有哪些下属
    public ArrayList<ICorp> getSubordinate() {
        
return this.subordinateList;
    }
    
//领导也是人,他也有信息
    public String getInfo() {
        String info
= "";
        info
= "姓名:" + this.name;
        info
= info + "\t职位:"+ this.position;
        info
= info + "\t薪水:" + this.salary;
        
return info;
    }
}
0
相关文章