Fork me on GitHub

入门设计模式之合成模式

 

学习更多设计模式请参考:入门设计模式之汇总篇

 

合成模式的职责是将对象组织到树结构中

 

 

观察上方类图:

  • interface,一个接口定义了一个获得当前对象名字的方法
  • leaf:树中的叶子节点,实现了interface
  • Branch:树枝节点,不仅实现了getName方法,同样它本身具有添加节点删除节点的方法且本身可以包含多个树枝节点以及叶子节点

通过上述结论我们可以发现其实合成模式就是树的结构的实现

来看一下代码:

public interface Compent {
    public String getName();

}
public class Branch implements Compent {
    private List<Compent> compent;

    @Override
    public String getName() {
        return "this name";
    }
    public void add() {
        //内部实现
    }
    public void remove() {
        //内部实现
    }
}

public class Leaf implements Compent {
    @Override
    public String getName() {
        return "this name";
    }
}

 

 

 

本文出自https://zhixiang.org.cn/#/blog/read/e9e4019a-1368-4cbd-a1d7-4ae2959b12d5,转载请保留。

 

posted @ 2018-06-30 23:10  石玉军  阅读(222)  评论(0编辑  收藏  举报