访问者模式(Visitor Pattern)

Posted 没有梦想的小灰灰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问者模式(Visitor Pattern)相关的知识,希望对你有一定的参考价值。

访问者模式:使用一个访问者类,改变元素的行为。通过这种方式,随着访问者的改变,被访问者的行为可以被改变。

 

类图:

实现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);

    }
}

测试结果:

 

以上是关于访问者模式(Visitor Pattern)的主要内容,如果未能解决你的问题,请参考以下文章

访问者模式(Visitor Pattern)

访问者模式(Visitor Pattern)

22访问者模式(Visitor Pattern)

秒懂设计模式之访问者模式(Visitor Pattern)

尚硅谷设计模式学习(16)---[访问者模式(Visitor Pattern)]

二十三种设计模式[23] - 访问者模式(Visitor Pattern)