定义
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提定义作用与这些元素的新操作。
使用场景
扩展客户管理的功能。公司的客户分为两大类,一类是企业客户,另一类是个人客户,现在要求客户能够实现服务申请,同时可以添加客户价值分析,客户偏好分析的功能。
UML(20180403添加)
分析(20181127添加)
有访问者自然需要有接受方法accept(Vistor)
表示一个作用于某对象结构中的各元素的操作:显然需要有一个对象接口,通常是提供可客户端的高层接口。通常维护这一批的元素对象,客户端通常会将Vistor以参数方式传递给对象结构,遍历执行相应元素的accept方法。
使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。比如添加偏好分析,你不需要修改元素类,只需要新增Vistor类即可完成。
大名鼎鼎的asm框架使用的就是访问者模式。