技术开发 频道

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

  组合模式的遍历

  我们在上面也还提到了一个问题,就是树的遍历问题,从上到下遍历没有问题,但是我要是从下往上遍历呢?比如组织机构这颗树,我从中抽取一个用户,要找到它的上级有哪些,下级有哪些,怎么处理?想想,~~~,再想想!想出来了吧,我们对下答案,类图如图21-9所示。

图21-1 增加父查询的类图

  看类图中,在Corp类中增加了两个方法,setParent是设置父节点是谁,getParent是查找父节点是谁,我们来看一下程序的改变,如代码清单21-25所示。

  代码清单21-25 抽象构件

public abstract class Corp {
    
//公司每个人都有名称
    private String name = "";
    
//公司每个人都职位
    private String position = "";
    
//公司每个人都有薪水
    private int salary =0;
    
//父节点是谁
    private Corp parent = null;
    
    
public Corp(String _name,String _position,int _salary){
        
this.name = _name;
        
this.position = _position;
        
this.salary = _salary;
    }
    
//获得员工信息
    public String getInfo(){
        String info
= "";
        info
= "姓名:" + this.name;
        info
= info + "\t职位:"+ this.position;
        info
= info + "\t薪水:" + this.salary;
        
return info;
    }
    
  
  //设置父节点
    protected void setParent(Corp _parent){
        
this.parent = _parent;
    }
    
    
//得到父节点
    public Corp getParent(){
        
return this.parent;

    }
}
0
相关文章