安全组合模式Java代码
时间: 2023-12-03 12:46:35 浏览: 75
安全组合模式是一种结构型设计模式,它允许将对象组合成树形结构来表示“部分-整体”的层次结构。在这种模式中,单个对象与组合对象被一致地对待,这样就可以将系统中的对象组织成树形结构,而不必考虑它们是单个对象还是组合对象。
下面是一个简单的安全组合模式的 Java 代码示例:
```java
import java.util.ArrayList;
import java.util.List;
// 抽象组件
interface Component {
void show();
}
// 叶子节点
class Leaf implements Component {
private String name;
public Leaf(String name) {
this.name = name;
}
@Override
public void show() {
System.out.println("Leaf " + name + " is showing.");
}
}
// 组合节点
class Composite implements Component {
private String name;
private List<Component> children = new ArrayList<>();
public Composite(String name) {
this.name = name;
}
public void add(Component component) {
children.add(component);
}
public void remove(Component component) {
children.remove(component);
}
@Override
public void show() {
System.out.println("Composite " + name + " is showing.");
for (Component component : children) {
component.show();
}
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Component root = new Composite("root");
Component branch1 = new Composite("branch1");
Component branch2 = new Composite("branch2");
Component leaf1 = new Leaf("leaf1");
Component leaf2 = new Leaf("leaf2");
Component leaf3 = new Leaf("leaf3");
root.add(branch1);
root.add(branch2);
branch1.add(leaf1);
branch1.add(leaf2);
branch2.add(leaf3);
root.show();
}
}
```
在上面的代码中,`Component` 接口定义了组合对象和叶子对象的公共接口。`Leaf` 类表示叶子节点,`Composite` 类表示组合节点。`Composite` 类中包含了一个子对象列表,可以添加或删除子对象。在 `show()` 方法中,`Composite` 对象会遍历它的子对象列表,并调用每个子对象的 `show()` 方法。
客户端代码中创建了一个树形结构,包括一个根节点和两个分支节点,每个分支节点下面分别有两个叶子节点和一个分支节点。最后,调用根节点的 `show()` 方法可以展示整个树形结构。
阅读全文