Java设计模式-----Visitor访问者模式
来源:互联网 发布:网络改写的小说 编辑:程序博客网 时间:2024/05/17 23:39
源自:http://www.blogjava.net/flustar/archive/2007/12/15/visitor.html
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访问者(Visitor)模式
- Java设计模式-----Visitor访问者模式
- JAVA设计模式十四--Visitor(访问者模式)
- java设计模式之访问者模式 Visitor
- java设计模式-访问者模式(Visitor)
- JAVA设计模式—访问者模式(Visitor)
- Java设计模式十三:访问者模式(Visitor)
- JAVA设计模式十四:--Visitor(访问者模式)
- java设计模式--访问者模式 Visitor
- Java设计模式--访问者模式【Visitor Pattern】
- Visitor(访问者)设计模式
- Java 访问者模式(Visitor)
- 设计模式--访问者模式(Visitor)
- [设计模式]visitor访问者模式
- 设计模式之Visitor(访问者)
- 设计模式(二十三)----- 访问者模式(visitor)----(JAVA版)
- JAVA设计模式——访问者模式(Visitor)
- Android 子窗口关闭后怎么把数据回传给主窗口
- uses-permission的问题
- Java设计模式-----Mediator中介者模式
- The data couldn’t be read because it has been corrupted
- Java设计模式-----Chain of Responsibility职责链模式
- Java设计模式-----Visitor访问者模式
- Java设计模式-----Composite模式
- Java设计模式-----FlyWeight享元模式
- 全文检索lucene学习笔记(五)
- Java中使用DES进行加密解密
- 关于"Java中方法参数的传递方式"的探讨
- Jboss负载均衡·集群配置的一点心得
- 文件系统、缓存管理器、内存管理器的关系
- java中Thread与Runnable的区别