参考:
http://tianli.blog.51cto.com/190322/45702
http://smartfool.iteye.com/blog/207092 这个银行经理的比方还是很形象的
Demo比较标准 visitor.tar.gz
1 首先,有一个“访问者”,这个哥们儿负责把这堆数据和对这堆数据的操作分离开,就像银行里的大堂经理,把顾客和柜台窗口职员分开;这个访问者一般是接口,不过也可以是抽象类;
2 那堆数据里,每个数据都有一个accept方法,这个方法作用:访问者Visitor来访时,把自己“交出去。注意,这个accept里面,含有了针对每个数据类型的特殊处理。
3 这个访问者里,有多个visitor方法,分别针对每一个数据;
理解继续中......