访问者模式

访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构

代码如下:
//访问者:(功能,读取被访问者的数据或调用其方法)
public interface Visitor {  
    public void visit(Subject sub);  
}
public class MyVisitor implements Visitor {  
    @Override  
    public void visit(Subject sub) {  
        System.out.println("visit the subject:"+sub.getSubject());  
    }  
}
//被访问者
public interface Subject {  
    public void accept(Visitor visitor);  
    public String getSubject();  
}
public class MySubject implements Subject {  
    @Override  
    public void accept(Visitor visitor) {  
        visitor.visit(this);  
    }  
    @Override  
    public String getSubject() {  
        return "love";  
    }  
}
//测试
public class Test {  
    public static void main(String[] args) {  
        Visitor visitor = new MyVisitor();  
        Subject sub = new MySubject();  
        sub.accept(visitor);      
    }  
}

综:拜访者需要知道被拜访者的资源,因此,接口的使用是此例子的核心

父文链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容