Java设计模式-----Visitor访问者模式
2011-12-14 01:05
806 查看
源自:http://www.blogjava.net/flustar/archive/2007/12/15/visitor.html
Visitor访问者模式:
表示一个作用于某对象结构中各元素的操作。它可以使你不修改各元素类的前提下定义作用于这些元素的新操作,也就是动态的增加新的方法。
例子:
Visitor访问者模式:
表示一个作用于某对象结构中各元素的操作。它可以使你不修改各元素类的前提下定义作用于这些元素的新操作,也就是动态的增加新的方法。
例子:
public interface Visitor { public void visitElementA(ConcreteElementA elementA);//针对具体元素A的新方法 public void visitElementB(ConcreteElementB elementB);//针对具体元素B的新方法 } public interface Element { public void accept(Visitor visitor); } public class ConcreteVisitor implements Visitor { public void visitElementA(ConcreteElementA elementA) { System.out.println(elementA.getName() + " visited by ConcreteVisitor "); } public void visitElementB(ConcreteElementB elementB) { System.out.println(elementB.getName() + " visited by ConcreteVisitor "); } } public class ConcreteElementA implements Element { private String name; public ConcreteElementA(String name) { this.name = name; } public void accept(Visitor visitor) {// 接受访问者调用它针对该元素的新方法 visitor.visitElementA(this); } public String getName() { return name; } } public class ConcreteElementB implements Element { private String name; public ConcreteElementB(String name) { this.name = name; } public String getName() { return name; } public void accept(Visitor visitor) {// 接受访问者调用它针对该元素的新方法 visitor.visitElementB(this); } } public class ObjectStructure { private Collection<element></element> collection = new ArrayList<element></element>(); public void attach(Element element) { collection.add(element); } public void detach(Element element) { collection.remove(element); } public void accept(Visitor visitor) { for (Element element : collection) { element.accept(visitor); } } } public class Client { public static void main(String args[]) { Element elementA = new ConcreteElementA("ElementA"); Element elementB = new ConcreteElementB("ElementB"); Visitor visitor = new ConcreteVisitor(); ObjectStructure os = new ObjectStructure(); os.attach(elementA); os.attach(elementB); os.accept(visitor); } }
相关文章推荐
- JAVA设计模式十四:--Visitor(访问者模式)
- Java开发中的23种设计模式之二十一:访问者模式(Visitor)
- Java设计模式(三) Visitor(访问者)模式及多分派场景应用
- 浅谈Java设计模式(二十一)访问者模式(Visitor)
- Java开发中的23种设计模式详解----访问者模式(Visitor)
- Java设计模式十三:访问者模式(Visitor)
- Java私塾:研磨设计模式 之 访问者模式(Visitor)
- Java设计模式-访问者模式(Visitor)
- JAVA设计模式十四--Visitor(访问者模式)
- 设计模式--Java访问者(Visitor)模式
- JAVA--访问者模式(Visitor)--设计模式二十一
- 设计模式学习笔记--解释器模式Interpreter与访问者模式Visitor(Java版)
- Java设计模式之--访问者模式(Visitor)
- Java设计模式(23)——行为模式之访问者模式(Visitor)
- Java设计模式十三:访问者模式(Visitor)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 访问者模式(Visitor) - Java实现
- Java设计模式(三) Visitor(访问者)模式及多分派场景应用
- java设计模式之访问者模式 Visitor
- java设计模式-访问者模式(Visitor)
- 设计模式深入学习--Visitor 访问者模式(行为型模式)