Visitor Pattern: 一种强大的设计模式
1 简单示例
Visitor模式是一种行为设计模式,它允许你在不改变对象结构的情况下,为对象结构中的元素添加新的操作。这个模式非常适合那些对象结构相对稳定,但需要频繁添加新操作的场景。下面我们通过一个简单的例子来介绍Visitor模式的基本概念。
1.1 电源单元
假设我们有一个电源单元(Power Unit),它可以是电池(Battery)或发电机(Generator)。每个电源单元都有不同的属性和方法。例如,电池可能有容量(Capacity),而发电机可能有功率(Power Output)。
interface PowerUnit {
void accept(PowerUnitVisitor visitor);
}
class Battery implements PowerUnit {
private int capacity;
public Battery(int capacity) {
this.capacity = capacity;
}
@Override
public void accept(PowerUnitVisitor visitor) {
visitor.visit(this);
}
public int getCapacity() {
return capacity;
}
}
class Generator implements PowerUnit {
private int powe