合成模式

Posted by 石玉军 on 2018-07-26

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

图片

观察上方类图:

interface,一个接口定义了一个获得当前对象名字的方法
leaf:树中的叶子节点,实现了interface
Branch:树枝节点,不仅实现了getName方法,同样它本身具有添加节点删除节点的方法且本身可以包含多个树枝节点以及叶子节点
通过上述结论我们可以发现其实合成模式就是树的结构的实现

来看一下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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";
}
}