返回
当前 - 选择题 - 设计模式题号:0120160500021
单选题
2016年5月第21题
题号:0120160500021
单选题
2016年5月第21题
设计模式
中等
高频
收藏
分享
反馈
对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(Visitor);该模式适用的场合是(定义对象结构的类很少改变,但经常需要在此结构上定义新的操作)。

浓缩知识点
访问者模式是行为型设计模式的一种,核心逻辑是将作用于对象结构内元素的操作,与元素本身实现分离,能在不修改元素类的前提下,为元素灵活新增各类操作。它包含五大核心角色:定义操作规范的抽象访问者、实现具体操作的具体访问者、声明接受访问逻辑的抽象元素、承载业务数据的具体元素,以及管理元素集合的对象结构。
该模式的典型适用场景是对象结构相对稳定,不会频繁新增或修改元素类,但需要经常为结构内的元素添加新的操作逻辑,比如固定数据模型需要新增多种统计、导出等差异化处理逻辑的场景。
需要注意与其他易混淆模式区分:策略模式聚焦单一行为的不同算法实现动态替换;状态模式核心是对象行为随自身内部状态变化而改变;观察者模式基于发布-订阅机制实现对象间的一对多通知,这些模式的核心目标与应用场景和访问者模式差异显著。
访问者模式的优势是能大幅提升操作逻辑的扩展性,新增操作仅需新增具体访问者类,符合开闭原则;但缺点也很突出,若对象结构需要调整(如新增元素类),所有访问者类都需同步修改,维护成本会急剧上升,因此仅适配元素结构稳定的业务场景。
正确答案
A
本题考察的是设计模式。
本小问答案是 Visitor。对于如下所示的序列图所描述的场景,最适合于采用的设计模式是Visitor。
A. Visitor:符合题意,正确。
B. Strategy:用于算法族的切换,不符合题意。
C. Observer:用于对象间的一对多通知,不符合题意。
D. State:用于对象状态驱动行为变化,不符合题意。
因此,选项 A 正确。
