将对象组合成树形结构 部分中体的 层次机构 组合模式使得用户对单个对象或者组合对象具有一直性
abstract class childtangguo {
private String name;
public childtangguo(String name) {
this.name = name;
}
public abstract void addChild(childtangguo child);
public abstract void removeChild(childtangguo child);
public abstract childtangguo getChild(int index);
public abstract void getName();
}
叶子节点
public class childbinggun extends childtangguo {
public childbinggun(String name) {
super(name);
}
@Override
public void addChild(childtangguo child) {
}
@Override
public void removeChild(childtangguo child) {
}
@Override
public childtangguo getChild(int index) {
return null;
}
@Override
public void getName() {
}
}
枝干节点
public class childruantang extends childtangguo {
private List<childtangguo> components = new ArrayList<>();
public childruantang(String name) {
super(name);
}
@Override
public void addChild(childtangguo child) {
}
@Override
public void removeChild(childtangguo child) {
}
@Override
public childtangguo getChild(int index) {
return null;
}
@Override
public void getName() {
}
}
代码结合图来看。在枝干节点添加list中添加了新的节点。 添加的聚合关系。也就是这个抽象类
和之前的几个结构型 模式 有什么区别呢
- 代理适配桥接 都是通过 代理者 适配器 抽象类中引用了真实 被适配 具体接口对象 来达到调用的目的
- 组合模式不一样 没有第三方 就是一个自我的调用。通过子节点的list中添加的抽象类,l达到一种扩展性的效果