2009年4月9日星期四

JavaDesign_026:访问者模式 Visitor(摘录+整理)

1. 特点
(1)把数据结构和作用于结构上的操作“解耦”。
(2)数据结构相对稳定(可以有多个),而操作可以独立地演化。

2. 优点
(1)增加新的操作变得很容易。
(2)访问不同类型的等级结构。

3. 代码架构
(1)抽象访问者:声明一个或多个访问操作。
(2)具体访问者:继承抽象访问类,实现所有访问操作。
(3)抽象节点类:声明一个accept()方法,接受抽象访问者作为参数。

(4)具体节点类:实现accept()方法。
(5)结构对象类:遍历结构中的所有元素。

4. 典型应用场景
(1)同属于Collection的不同聚集上的不同操作。
(2)电脑专卖店(整机、配件)。树型结构的产品相对固定、两种访问者:价格和库存。

参考文献:
1. 《设计模式》 板桥里人
2. 《Java与模式》 阎宏

没有评论: