首页 > 其他 > 详细

设计模式学习总结(21) 訪问者模式

时间:2014-06-09 18:57:37      阅读:383      评论:0      收藏:0      [点我收藏+]

本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是怎样解决的,掌握它的结构图,记住它的关键代码;可以想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,其有哪些使用场景,在使用时要注意什么。

尊重作者,转载请注明晔阳的Bloghttp://blog.csdn.net/hacke2


21.訪问者模式

意图:主要讲数据结构与数据操作分离
主要解决:稳定的数据结构和易变的操作耦合问题
什么时候使用:与类本不相关的,为了避免这个污染 ,使用訪问者模式将这些封装到訪问者模式
怎样解决 :在被訪问的类里面加一个对外提供接待訪问者的接口
结构图

bubuko.com,布布扣
关键代码:在数据基础类里面有一个方法接受訪问者,将自身引用传入訪问者
应用实例:你在朋友家做客,你是訪问者,朋友接受你的訪问,你通过朋友的描写叙述,然后对朋友的 描写叙述做出一个推断,这就是訪问者模式
长处:1、符合单一职责原则。 2、优秀的扩展性。3、灵活性  
缺点:1、详细元素对訪问者发布细节,违反了迪米特原则2、详细元素变更比較困难 3、违反了依赖倒置原则,依赖了详细类,没有依赖抽象
使用场景:1、对象结构中对象相应的类非常少改变,但常常须要在此对象结构上定义新的操作。
2、须要对一个对象结构中的对象进行非常多不同的而且不相关的操作,而须要避免让这些操作“污染”这些对象的类,也不希望在添加新操作时改动这些类
注意事项:訪问者能够对功能进行统一,能够做报表、UI、拦截器与过滤器

设计模式学习总结(21) 訪问者模式,布布扣,bubuko.com

设计模式学习总结(21) 訪问者模式

原文:http://www.cnblogs.com/mengfanrong/p/3777430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!