25 Visitor访问者模式(行为型)
25 Visitor(行为型)
-
- 认为被访问的东西收留我了
- 动机:
- 表示要对对象结构的元素执行的操作。
- Visitor允许您定义一个新操作,而无需更改它所操作的元素的类。
- 什么时候用:
- 对象结构包含许多具有不同接口的对象类,您希望对这些依赖于其具体类的对象执行操作。
- 需要对对象结构中的对象执行许多不同的和不相关的操作,您希望避免使用这些操作“污染”它们的类。当对象结构被许多应用程序共享时,使用Visitor将操作放在需要它们的应用程序中。
- 定义对象结构的类很少更改,但是您通常希望在结构上定义新的操作
- 结构:
- 我拿到一个visitor,我调用visitor的方法来访问我
- 参与者:
-
- 协作:
- 好处:
- 坏处:
- 例:
- 类图:
- Visitor:
- Element:
- Entry:
- File:
- Directory:
- ListVisitor:
- Main: