Visitor模式

Posted zhaojunyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visitor模式相关的知识,希望对你有一定的参考价值。

访问者模式的目的是要把处理从数据结构中分离出来,如果系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式是个不错的选择,因为访问者模式使的算法操作的增加变得容易。相反,如果系统的数据结构不稳定,易于变化,则此系统就不适合使用访问者模式了。

访问者模式结构:
访问者角色(Visitor): 为该对象结构中具体元素角色声明一个访问操作接口. 
具体访问者角色(Concrete Visitor): 实现每个由访问者角色(Visitor)声明的操作.
元素角色(Element): 定义一个Accept操作,它以一个访问者为参数.
具体元素角色(Concrete Element): 实现由元素角色提供的Accept操作.
对象结构角色(Object Structure): 这是使用访问者模式必备的角色. 它要具备以下特征: 能枚举它的元素; 可以提供一个高层的接口以允许该访问者访问它的元素; 可以是一个复合(组合模式)或是一个集合, 如一个列表或一个无序集合.

 

核心:在不改变类层次结构的同时,向其中增加功能

 

以上是关于Visitor模式的主要内容,如果未能解决你的问题,请参考以下文章

24访问者模式Visitor

Java设计模式 Visitor(訪问者)模式及多分派场景应用

设计模式入门之訪问者模式Visitor

设计模式之Visitor模式(笔记)

Visitor模式

聊聊 C# 中的 Visitor 模式