作者网页:www.jcohy.com
我的学习笔记,记录学习过程中的笔记以及遇到的问题,以及我的一些经验总结。如果出现链接失效,或者想知道更多的内容等情况可以提交 Issues 提醒我修改相关内容。
访问者模式:表示一个作用于某对象结构中的各元素的操作。它可以使你在不改变各元素的类的前提下定义作用与这些元素的新操作。
- Visitor:为该对象结构中的ConcreteElement的每一个类声明一个Visit操作。
- ConcreteVisit(1、2、3...):具体访问者,实现每个由Visitor声明的操作,每个操作实现算法的一部分,而该算法的片段乃是对应于结构中对象的类。
- Element:定义一个Accept操作,他以一个访问者为参数。
- ConcreteElement(1、2、3...):具体元素,实现Accept操作。
- ObjectStructure:能枚举他的元素,可以提供一个高层的接口以访问者访问他的元素。
- Client:
- javax.lang.model.element.AnnotationValue 和 AnnotationValueVisitor
- javax.lang.model.element.Element 和 ElementVisitor
- javax.lang.model.type.TypeMirror 和 TypeVisitor