标签:
访问者模式:使用一个访问者类,改变元素的行为。通过这种方式,随着访问者的改变,被访问者的行为可以被改变。
类图:
实现Master接口的具体类是行为需要被改变的对象。
实现Visitor接口的具体类是访问者,访问者不同,实现Master接口的具体类的行为不同。
public interface Master { public abstract String getName(); } public class ConcreteMaster implements Master { private String name; public ConcreteMaster(String name) { this.name = name; } public String getName() { return name; } } public interface Visitor { public abstract void visit(Master master); } public class ConcreteVisitor implements Visitor { public void visit(Master master) { //这里的visit方法仅仅是打印出被访问者的name,改变被访问者的行为的操作就是在这里实现的,不同的Visitor的visit方法不同导致 //被访问者的行为也不同 System.out.println("visit the master " + master.getName()); } }
public class Test { public static void main(String[] args) { Master master = new ConcreteMaster("Amy"); Visitor visitor = new ConcreteVisitor(); visitor.visit(master); } }
测试结果:
标签:
原文地址:http://www.cnblogs.com/13jhzeng/p/5592305.html