用java代码的组合模式写一个四层树状结构的代码
时间: 2024-05-02 09:19:55 浏览: 60
好的,以下是用 Java 代码实现四层树状结构的组合模式:
首先,我们定义抽象类 Component,它是所有节点的抽象类,包含两个方法:add() 和 remove(),用于添加和删除子节点;display() 方法用于显示节点信息。
```java
public abstract class Component {
protected String name;
public Component(String name) {
this.name = name;
}
public abstract void add(Component c);
public abstract void remove(Component c);
public abstract void display();
}
```
然后,我们定义 Composite 类和 Leaf 类。
Composite 表示内部节点,包含子节点,实现了 Component 中定义的方法,其中 add() 和 remove() 方法用于添加和删除子节点,display() 方法用于显示节点信息。
Leaf 表示叶子节点,没有子节点,也实现了 Component 中定义的方法,但 add() 和 remove() 方法不需要实现。
```java
public class Composite extends Component {
private List<Component> children;
public Composite(String name) {
super(name);
children = new ArrayList<Component>();
}
@Override
public void add(Component c) {
children.add(c);
}
@Override
public void remove(Component c) {
children.remove(c);
}
@Override
public void display() {
System.out.println(name);
for (Component c : children) {
c.display();
}
}
}
public class Leaf extends Component {
public Leaf(String name) {
super(name);
}
@Override
public void add(Component c) {
System.out.println("Cannot add to a leaf");
}
@Override
public void remove(Component c) {
System.out.println("Cannot remove from a leaf");
}
@Override
public void display() {
System.out.println(name);
}
}
```
最后,我们可以使用 Composite 和 Leaf 来创建树状结构,如下所示:
```java
public class Main {
public static void main(String[] args) {
Composite root = new Composite("root");
Composite node1 = new Composite("node1");
Composite node2 = new Composite("node2");
Leaf leaf1 = new Leaf("leaf1");
Leaf leaf2 = new Leaf("leaf2");
Leaf leaf3 = new Leaf("leaf3");
node1.add(leaf1);
node1.add(leaf2);
node2.add(leaf3);
root.add(node1);
root.add(node2);
root.display();
}
}
```
输出结果如下:
```
root
node1
leaf1
leaf2
node2
leaf3
```
阅读全文