目录
文章目录
访问者模式(Visitor Pattern)
数据结构中保存着许多元素,当我们希望改变一种对元素的处理方式时,要避免重复的修改数据结构。那么就要求我们在实现代码时,将数据的处理进行分离,即:数据类只提供一个数据处理的接口,而该数据处理接口就被称之为访问者。那么,相同结构的数据面临不同的处理结果时,我们只需要创建不同的访问者。
访问者模式,指作用于一个对象结构体上的元素的操作。访问者可以使用户在不改变该结构体中的类的基础上定义一个新的操作。
优点:
-
使得在访问者类中针对复杂类结构中的某个类添加新方法较为容易,即:只需要简单地添加一个新的访问者方法即可。如果不采用访问者模式,这需要在每个类中添加一个新的方法。
-
访问者将相关的方法集中在一个具体的访问者类中,而其他相关的方法集中在另外一个具体的访问者类中。也就是说,访问者子类是按照方法的类型来分类的。
缺点:
- 增加一个具体的新 ConcreteElement 类比较困难。因为此时需要在每一个 ConcreteVisitor 类中添加该 ConcreteElement 类的访问方