敏捷软件开发 - 原则、模式与实践 —— 设计模式(十一)VISITOR模式

本文为敏捷软件开发 - 原则、模式与实践系列的一部分。

本文对应原书第28章

VISTOR模式系列允许在不更改现有层次结构的情况下向其中增加新方法。

该系列中的模式如下

  • VISITOR模式
  • ACYCLIC VISITOR模式
  • DECORATOR模式
  • EXTENSION ObJECT模式

VISITOR模式

图1
这个结构,可以通过增加新的ModemVisitor派生类来增加新的操作系统配置函数,而完全不用对Modem层次结构进行更改。所以,VISITOR模式使用ModemVisitor的派生类代替了Modem层次结构中的方法。

这之所以被称为双重分发是因为它涉及了两个多态分发。第一个分发是accept函数。该分发辨别出所调用的accept方法所属对象的类型。第二个分发是visit方法,它辨别出要执行的特定函数。这两个分发赋予了VISITOR模式非常快的执行速度。

VISITOR模式中的两次分发形成了一个功能矩阵。在Modem的例子中,矩阵的一条轴是不同类型的Modem。另一条轴是不同类型的操作系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值