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

本文深入探讨访问者模式的意图、应用场景、优点与缺点,包括如何解决数据结构与数据操作分离的问题,以及如何在不同场景下应用此模式。通过生活实例与软件应用实例,阐述模式的具体实现与优势。

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

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


21.訪问者模式

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


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

转载于:https://www.cnblogs.com/mengfanrong/p/3777430.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值