设计模式笔记之 - Visitor
Visitor模式系列允许在不更改现有类层次结构的情况下向其中增加新方法。
看下图,以驱动多个Modem和多个操作系统为例,可知基本的Visitor模式:
分析此图可知三种Modem继承至Modem接口,Modem持有Accept方法,此方法意在调用ModemVisitor接口的Visit方法,这样就形成一个矩阵,一个是多Modem一个是多操作系统的支持。从次图可以看出,UnixModemConfigurator调用接口函数即可制定某个Modem的操作,如果需要扩展其他操作系统的支持,只需要派生其他的ModemVisitor即可。
Visitor模式是有诱惑力的,在它们面前很容易失去自制力,如果有用就去用它们请对它们保持健康的怀疑,通常可以用Visitor解决的问题往往也可以用更简单的方法解决。