知识卡片

访问者怕结构变

普通读书笔记卡 · 1871.a

内容

访问者扩展新算法容易,但新增数据类型困难,因为所有访问者都可能要补实现。发散:它适合稳定对象结构,不适合元素类型仍在快速变化的领域模型。

参考来源

- 位置:《秒懂设计模式 2021》第22章《访问者》正文对instanceof判断的讨论(源文件:_epub-src/OEBPS/Text/chapter022.html) - 结论依据:原文明确访问者接口需要为每种商品类型定义对应方法(重载),暗示新增数据类型需要所有访问者补充实现,直接支持卡片论点。 - 原始内容:"能否用instanceof运算符判断商品类别呢?不能,否则代码里就会充斥着大量以'if''else'组织的逻辑……有些读者可能想到了使用多个同名方法的方式,以不同的商品类别作为入参来分别处理。没错,这种情况用重载方法再合适不过了。"