入门设计模式之合成

Posted zhixiang-org-cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入门设计模式之合成相关的知识,希望对你有一定的参考价值。

 

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

 

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

 

 

技术分享图片

观察上方类图:

  • 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,转载请保留。

 

以上是关于入门设计模式之合成的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

ZYNQ从入门到秃头09 DDS IP 数字波形合成(基于ALINX 7020 && AN108)

设计模式之合成复用原则

设计模式面向对象设计原则之合成复用原则

设计模式七大原则之合成复用原则

七大设计原则之合成复用原则应用