定义 封装一些作用于某种数据结构中各元素的操作,可以在不改变数据结构的前提下,定义作用于这些数据元素的新的操作 应用场景 数据结构稳定,作用于数据结构的操作经常变换 需要数据结构与数据操作分离 类图 访问者类图.png 优缺点 优点 解耦了数据结构和数据操作,符合单一职责 扩展性好,方便的添加数据操作 缺点 具体元素变更困难,变更时,对应使用到的访问者都要修改 违背依赖倒置,方法依赖的是具体的元素,而不是接口,相当于写死了