设计模式:Visitor模式

Visitor模式用于在对象结构中添加新操作,避免污染原有结构。通过双重分派实现,适用于对象结构固定但操作频繁变动的场景。文章通过实例解释了为何要在对象结构中增加accept方法,以及何时考虑使用Decorator模式。
摘要由CSDN通过智能技术生成

Visitor模式是一个用起来很简单,理解起来可能稍微有一点困难的模式。不过明白了之后就清楚了,其实也是非常的简单。


问题

需要向对象结构中增加新的方法,但是增加起来会很费劲或者会破坏设计。

 

案例

举一个例子。假设我们有一组机器(Windows,Unix,Linux,Mac等),每种机器都有自己不同的底层结构。现在需要在各台机器上装一个软件或者进行一项配置。由于每种操作系统都是不一样的架构,所以做某种配置或者是安装某款软件的手顺都是不同的,而且我们不可能也不想在原有的操作系统中直接添加一个同名的方法来实现这个功能。那么这个时候,Visitor模式就是一个很好的利器了。


还有,最近做的一个工具也是比较适合使用Visitor模式。这个工具是类似于Findbugs的一种功能,要解析一种编程语言的源码文件,然后对其中的内容进行分析,看是否符合某种类型的bug pattern。源码文件首先将被解析

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值