爱编程,爱生活

Java设计模式<访问者模式>

2018-06-16  本文已影响7人  熬夜的猫头鹰

Java设计模式<访问者模式>

意图

角色

场景

家是一个抽象的概念,家中一台电视机,可以打开和关闭,我们可以设想这样一个场景,Tom 家可以接受Kite来访问,Kite来了之后可以打开电视,然后Kite打开电视之后可以坐在沙发上或者是吃点零食。

定义一个抽象的家

public interface Home {

    public void openTV();

    public void accept(Visitor visitor);

}

Tom的家

public class TomHome implements Home {
    @Override
    public void openTV() {
        System.err.println("打开电视机");
    }

    @Override
    public void accept(Visitor visitor) {
        visitor.visit(this);
    }
}


定义访问者

public interface Visitor {

    public void visit(Home home);
}

定义Kite


public class KiteVisitor implements Visitor{
    @Override
    public void visit(Home home) {
        home.openTV();
        System.err.println("我得吃个苹果了 ");
    }
}

测试类


public class DemoMain {

    public static void main(String[] args) {
        Home tomHome = new TomHome();
        tomHome.accept(new KiteVisitor());
    }
}

输出

打开电视机
我得吃个苹果了 

上一篇 下一篇

猜你喜欢

热点阅读