访问者模式
A.定义:
表示一个作用于某对象结构中各元素的操作。它使你可以在不改变对象类的前提下定义作用于这些元素的新操作。
B.定义分析:
"表示一个作用于某对象结构中各元素的操作。它使你可以在不改变对象类的前提下定义作用于这些元素的新操作。" 对象结构,即一个对象,这个对象中包含了一些数据,对应这些数据会有一些操作接口,get、set之类的。
"表示一个作用于某对象结构中各元素的操作。它使你可以在不改变对象类的前提下定义作用于这些元素的新操作。" 原本这些操作应该聚合到类中的,但是某种情况下(当你觉得不适当或者不舒服的时候),需要把这些操作接口提到外部类,这就实现了不改变类,而可以灵活改变类元素的操作接口,因为在外部。
C.文体
(1)与装饰者模式的区别?
装饰者模式也是不改变类,增加功能;但是是针对某个接口的装饰作用;访问者模式把作用于元素的操作(这些操作本属于本类)提到外部类中。
(2) 与叠代器模式的区别?
叠代器模式侧重聚合对象的内部元素的访问方法;而访问者模式侧重对对象接口中元素的操作已经增加新的操作的灵活性。