结构图:
释义:
访问者模式(Visitor Pattern)是一种行为型设计模式,它用于在不改变元素类的前提下,为元素的不同操作(访问)提供不同的处理方式。访问者模式将数据结构与数据操作分离,使得可以在不修改数据结构的情况下添加新的操作或访问方式。
访问者模式的核心思想是引入一个访问者对象,该对象包含了一组访问操作,每个操作用于处理不同类型的元素。元素类会接受访问者对象,并将自身传递给访问者,让访问者根据元素的类型执行相应的操作。
结构
- 访问者(Visitor): 访问者是一个接口或抽象类,定义了一组访问操作,每个操作用于处理特定类型的元素。
- 具体访问者(Concrete Visitor): 具体访问者是访问者的实现类,它实现了访问者接口中定义的访问操作,以定义不同类型元素的处理方式。
- 元素(Element): 元素是一个接口或抽象类,定义了一个 accept 方法,该方法接受访问者对象,并将自身传递给访问者对象以进行处理。
- 具体元素(Concrete Element): 具体元素是元素的实现类,它实现了 accept 方法,并将自身传递给访问者对象,以便访问者可以根据元素的类型执行相应的操作。
- 对象结构(Object Structure): 对象结构是一个集合,它可以包含不同类型的元素。访问者将访问对象结构中的元素,执行相应的操作。
例子:小学生喜欢并且能够访问科技馆,偶尔去图书馆、大学生喜欢并且能够访问图书馆,不去科技馆