访问者模式(Visitor Pattern)是行为设计模式之一,它表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定,但经常需要在此数据结构上定义新的操作的情况。
核心概念
-
访问者接口(Visitor Interface):声明了一个或多个访问操作,形式参数是元素类的对象。每个操作针对不同类型的元素类实现不同的访问行为。
-
具体访问者(Concrete Visitor):实现访问者接口,为每一种具体元素提供具体的访问操作实现。
-
元素接口(Element Interface):定义了一个接受访问者的方法,如
accept(Visitor visitor)
。这个方法让每个元素都可以被访问者访问。 -
具体元素(Concrete Element):实现了元素接口,提供接受访问者的方法的具体实现,通常会调用访问者的方法来完成对元素的操作。
-
对象结构(Object Structure):用于存放元素对象的集合,可以提供迭代器来遍历这些元素,供访问者访问。