在访问者模式中,使用一个访问者类,改变元素类的执行算法。通过这种方式,元素执行算法可以随着访问改变而改变。这种设计模式属于行为型的模式。
实现:
创建一个定义接受操作的ComputerPart接口。Keyboard、Mouse、Monitor和Computer实现了ComputerPart接口实体类。定义了另一个接口ComputerPartVisitor,定义了访问者类的操作。
1.定义一个表示元素的接口
interface class ComputerPart{
void accept(ComputerpartVisitor computerpartVisitor);
}
2.创建了扩展了上述类的实体类
keyboar、Monitor、Mouse、Mouse、Computer等
3.定义一个访问者
public interface ComputerPartVisitor{
void visit(Computer computer);
void visit(Mouse mouse);
void visit(Keyboard keyboard);
void visit(Monitor monitor);
}
4.创建实现了上述类的实体访问者
class ComputerPartDisplayVisitor implements ComputerVisitor{
visit(Computer computer);
.............
}