Java设计模式-----Visitor访问者模式
来源:互联网 发布:2016最新网络流行歌曲 编辑:程序博客网 时间:2024/05/29 07:50
源自: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 Collectioncollection = new ArrayList ();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)
- 在Hibernate中创建安全Session
- 规划人生三级跳
- 用Reflector for .NET反编译dll文件(.net),把整个dll导出个cs插件
- C++中的类型转换
- 数据库构架工具Powerdesigner v11汉化破解版
- Java设计模式-----Visitor访问者模式
- div 覆盖select
- Silverlight 2学习教程(九):Silverlight 2 beta2 新控件介绍之 TabControl 控件
- QT 4.4 的 BUG
- asp.net 上传文件的类型和大小判断
- As3.0 冒泡算法 练习
- asp.net文件上传
- Configuring Visual Studio to Debug .NET Framework Source Code
- Socut分页工具说明