Visitor模式

有些服务操作的对象结构比较复杂,服务的实现分在定义的对象结构种的各个类中,难于维护以及升级,,使用一个独立的Visitor类实现服务,针对对象结构中的每个类根据其类型的不同实现不同的行为(方法重载)。对定义对象结构的类进行扩展,每个类增加一个方法用来接收Visitor对象,并且在这个方法中根据自身的类型回调并执行Vistro的相应方法。
简易图如下:



Visitor类为每个自己操作的对象定义一个方法,每个方法实现的一部分是专门针对那个对象的类的实例。将Visitor传入到要访问的对象结构中,结构中的对象根据自己的类型进行方法调用。

Visitor模式可以实现全局性结构的拓扑管理功能。可以让不同的关注点进行分离。

猜你喜欢

转载自flysnail.iteye.com/blog/1139935