定义:将对象组合成树型结构以表示”部分-整体”的层次结构,是的用户对单个对象的使用具有一致性.
我们先来看看组合模式的通用类图
几个角色介绍下:
1. Component抽象构建角色, 定义参加组合对象的公共方法和属性,可以定义一些默认的行为或熟悉,
2. Leaf叶子构件2, 叶子对象,其下再也没有其他的分支,也就是遍历的最小单位.
3. ComPosite树枝构件, 它的作用是组合树枝节点和叶子节点形成一个树型结构
下面给出通用源码.
1.Corp.java
/**
* 定义一个公司的人员的抽象类
*/
@SuppressWarnings("all")
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职位:"+