访问者模式
2015-10-09 15:15:22 5 举报
访问者模式是一种将算法与对象结构分离的软件设计模式。它通过定义一个访问者接口,让不同的访问者可以对同一个对象结构进行操作,从而实现了在不改变对象结构的前提下,为对象结构添加新的操作。这种模式主要用于处理复杂的对象结构,如树形结构、图形结构等。访问者模式的优点是将对象的操作与对象本身分离,提高了代码的可复用性和扩展性;缺点是会增加系统的复杂性,因为需要维护一个访问者接口和多个具体访问者的类。
作者其他创作
大纲/内容
为该对象结构中ConcreteElement的每一个类声明一个Visit操作
+男人反应(in concreteElementA : 男人)+女人反应(in concreteElementB : 女人)
Client
失败
能枚举它的元素,可以提供一个高层的接口以允许访问者访问它的元素
男人
+接受( in visitor : 状态)
ConcreteElementA
+Accept (in visitor : Visitor )+OperatorA()
女人
ConcreteVisitor 1
+VisitConcreteElementA (in : ConcreteElementA)+VisitConcreteElementB (in : ConcreteElementB)
+VisitConcreteElementA (in : ConcreteElementA)+VisitConcreteElementB(in : ConcreteElementB)
具体元素,实现Accept操作
对象结构
人
Element
+Accept ( in visitor : Visitor)
ConcreteElementB
+Accept (in visitor : Visitor)+OperatorB()
+接受(in visitor : 状态)
ConcreteVisitor 2
+VisitConcreteElementA( in : ConcreteElementA )+VisitConcreteElementB( in : ConcreteElementB)
具体访问者,实现每个由Visitor声明的操作,每个操作实现算法的一部分,而该算法片段乃是对应于结构中对象的类
状态
Visitor
成功
ObjectStructure
客户端
定义一个Accept操作,它以一个访问者为参数
访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。[DP]
0 条评论
下一页