设计模式之 访问者模式

这是我自己画的访问者模式uml。

先来照本宣科的说下访问者模式的适用情况。

  访问者模式一用于访问对象已经固定的情况。也就是途中的node是相对稳定的。在每个具体的访问者中有针对每个具体node的访问方法。这里的访问方法不用使用多态。访问者访问不同的对象对于node非常多的情况使用多态只会给自己带来麻烦。还是定义成具体的方法。访问者可以访问一系列的node,这里自然就是要访问一个node对象的集合了。这个集合我比较喜欢直接放在node里面。node本身应该有这样一个属性。 

  具体代码的执行过程是。最终的集合对象。调用node的一个方法并吧具体的访问者传入。方法的具体实现是访问者具体访当前的对象。 在这个方法总 访问者定位到了具体的访问者 对象也到了具体的对象剩下的事 爱怎么弄怎么弄。

  吧一些共享的信息放在具体的访问者中。让后遍历具体的node。调用那个固定方法把访问者带入。让后由访问者执行具体的访问。那个具体的方法实现是 访问者调用具体的node。这里的访问者要在运行是才能知道。所以给添加其他的访问者提供了可能。

测试项目文件https://files.cnblogs.com/wxzl/design.zip

原文地址:https://www.cnblogs.com/wxzl/p/2610630.html