访问者模式
2017-03-22 09:50:11 0 举报
访问者模式是一种将算法与对象结构分离的软件设计模式。它的基本思想是让访问者对象代替应用程序对象执行相应的操作,这样可以使应用程序代码更加灵活、可扩展。在访问者模式中,通常会有一个抽象的访问者类,该类定义了一组访问具体元素的方法,而具体的元素类则实现了这些方法。当需要对元素进行操作时,只需调用访问者类的相应方法即可。这种模式适用于那些需要对一组对象进行一系列操作的场景,例如遍历树形结构、处理文本等。
作者其他创作
大纲/内容
visitElementB(elementB){...}
abstract visitElementA(elementA)
accept(visitor){ visitor.visitElementA(this)}
abstract Visitor
...
detach(element){ elements.remove(element)}
accept(visitor){ visitor.visitElementB(this)}
abstract accept(visitor)
visitElementA(elementA){...}
accept(visitor){ foreach(Element e in elements){ e.accept(visitor) }}
用的不多大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是真的需要它了
List elements
ElementB
attach(element){ elements.add(element)}
ElementA
abstract visitElementB(elementB)
Visitor1
Visitor2
ObjectStructure
abstract Element
ObjectStructure o = new ..()o.attach(new ElementA())o.attach(new ElementB())Visitor1 v1 = new Visitor1()Visitor2 v2 = new Visitor2()o.accept(v1)o.accept(v2)...
0 条评论
下一页