Java设计模式菜鸟系列(二十三)访问者模式建模与实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java设计模式菜鸟系列(二十三)访问者模式建模与实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1556字,纯文字阅读大概需要3分钟。
内容图文
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40028509
访问者模式(Visitor):把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定而算法又容易变化的系统。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者;而它的缺点就是增加新的数据结构很困难。
一、uml建模:
二、代码实现
/** * 访问者模式(Visitor):把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。 * * 访问者模式就是一种分离对象数据结构与行为的方法,通过这种分离, * * 可达到为一个被访问者动态添加新的操作而无需做其它的修改的效果。 */ interface Visitor { /** * 访问对象 * * @param subject * 待访问的对象 */ public void visitor(Subject subject); } class MyVisitor implements Visitor { @Override public void visitor(Subject subject) { System.out.println("MyVisitor 访问的属性值为:" + subject.getField()); } } class OtherVisitor implements Visitor { @Override public void visitor(Subject subject) { System.out.println("OtherVisitor 访问的属性值为:" + subject.getField()); } } interface Subject { /** 接受将要访问它的对象 */ public void accept(Visitor visitor); /** 获取将要被访问的属性 */ public String getField(); } class MySubject implements Subject { private String name; public MySubject(String name) { this.name = name; } /** * 这是核心:接收【指定的访问者】来访问咱自身的MySubject类的状态或特征 */ @Override public void accept(Visitor visitor) { visitor.visitor(this); } @Override public String getField() { return name; } } /** * 客户端测试类 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 创建待访问的对象 */ Subject subject = new MySubject("张三"); /** * 接受访问对象:这里只接收MyVisitor访问者对象,不接收OtherVisitor访问者对象 */ subject.accept(new MyVisitor()); } }
三、总结
访问者模式就是一种分离对象数据结构与行为的方法,通过这种分离,可达到为一个被访问者动态添加新的操作而无需做其它的修改的效果。
原文:http://blog.csdn.net/lhy_ycu/article/details/40028509
内容总结
以上是互联网集市为您收集整理的Java设计模式菜鸟系列(二十三)访问者模式建模与实现全部内容,希望文章能够帮你解决Java设计模式菜鸟系列(二十三)访问者模式建模与实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。