全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某物流系统的 Shipment(运单)类中,calculateFee() 方法内嵌多段 if-else 判断客户等级以决定费率,且同类费率判断代码还散落在 Invoice(发票)类中。现需重构:第一步消除 Invoice 中的重复费率逻辑,第二步使新增客户等级时无须修改既有条件分支。下列重构手法与模式引入的组合最恰当的是( ) A. 第一步用 Extract Class 抽取费率计算为独立类,第二步用 Replace Conditional with Polymorphism 引入策略模式 B. 第一步用 Inline Method 将费率代码内联到调用处,第二步引入单例模式统一费率 C. 第一步用 Rename Method 重命名费率方法,第二步引入装饰器模式叠加费率 D. 第一步用 Extract Method 提取方法后直接删除 Shipment 类,第二步引入工厂方法模式创建运单
登录后查看答案
某实验平台允许操作员在运行时切换三种传感器校准算法。各算法的计算步骤彼此独立,预计会分别调整;平台不负责因内部状态变化而切换算法。若目标是在避免不必要结构复杂度的同时隔离算法变化,哪种设计最合适? A. 将算法封装为可替换的策略对象,由平台持有当前策略 B. 采用状态模式,由各状态对象决定下一校准状态 C. 采用模板方法,将算法差异放入子类重写 D. 在平台中保留一个大型条件分支直接实现所有算法
某图书管理系统目前只有一种借阅处理流程,需求文档明确表示近两年内流程不会变化。开发者在设计中加入了策略、装饰器、责任链等多个设计模式以预留扩展点。从防范过度设计与模式滥用的角度,对该做法的评价最恰当的是哪一项? A. 正确,使用的设计模式越多,设计质量越高 B. 正确,只要预留了扩展点就一定利于维护 C. 不恰当,在无变化需求处滥用模式会增加不必要的复杂度,应遵循按需设计原则 D. 不恰当,因为这些模式彼此不能组合使用
某实验室设计了两套协作流程:流程甲中,设备对象把故障请求交给当前检修节点,节点可处理请求,或将其转交给预设后继节点;流程乙中,设备对象不彼此发送消息,而是向协调对象报告状态,由协调对象决定通知哪些设备。下列对两种流程的模式判断与交互机制概括,哪项正确? A. 甲是责任链,按处理者序列传递请求;乙是中介者,由协调对象组织对象间交互 B. 甲是中介者,按处理者序列传递请求;乙是责任链,由协调对象组织对象间交互 C. 甲、乙都是责任链,区别仅在处理者是否能处理请求 D. 甲、乙都是中介者,区别仅在协调对象是否预设通知顺序
某协作平台有两种交互设计:甲中,各功能对象只向统一协调对象报告状态,由它决定通知哪些对象;乙中,请求到达当前处理对象后,由该对象决定完成处理或交给指定的下一对象。仅依据交互组织方式,哪项判断正确? A. 甲是责任链模式,乙是中介者模式 B. 甲是中介者模式,乙是责任链模式 C. 甲、乙都是中介者模式 D. 甲、乙都是责任链模式
某在线文档系统中,权限校验、内容审核、格式转换三个同事对象原本两两直接调用以完成文档处理。现按中介者模式重构:每个对象只与一个中介者对象交互,不再持有彼此引用。该改造的核心目的是使对象交互中心化,其主要收益是:A. 减少了系统中类的总数量 B. 使同事对象间的多对多依赖简化为对中介者的一对多依赖,降低耦合 C. 使每个对象可以同时担任多个中介者角色 D. 消除了系统中所有请求的传递过程
某发布流程采用状态模式,状态为“待校验”“校验中”“可发布”和“已发布”。规则如下:待校验收到“开始校验”进入校验中;校验中收到“校验通过”进入可发布、收到“校验失败”进入待校验;可发布收到“发布”进入已发布;已发布收到“撤回”进入待校验。未列出的状态与事件组合均保持原状态。初始状态为校验中,依次收到“校验失败”“开始校验”“校验通过”“撤回”“发布”后,最终处于哪种状态? A. 待校验 B. 校验中 C. 可发布 D. 已发布
某预约系统将“为指定房间预订指定时段”作为请求延后执行。设计规定:登记时不得联系房间服务对象,执行时不得再向用户询问房间和时段。下列哪种命令对象设计满足请求封装要求? A. 保存房间与时段参数,并提供执行方法;执行时由该方法调用房间服务对象 B. 只保存房间与时段参数,由调用者直接调用房间服务对象 C. 保存房间服务对象,但执行时由用户重新输入时段 D. 只提供执行方法,由调用者在执行时决定房间与时段
某集合按顺序保存元素:云、风、雨、雪、电。为该集合创建相互独立的迭代器 i₁、i₂,二者均从首元素开始;next() 返回当前元素并前进一位,hasNext() 只检查是否还有元素而不改变状态。现依次执行以下操作:① i₁.next();② i₂.next();③ i₂.next();④ 判断 i₁.hasNext() 的值;⑤ i₁.next();⑥ i₂.next();⑦ i₂.next()。问第⑦步操作 next() 的返回值是( ) A. 雪 B. 雨 C. 电 D. 风
集合按顺序保存记录:K、M、P、R、T。迭代器从首元素开始,next() 返回当前元素并前进一位,hasNext() 仅检查是否还有元素且不改变位置。依次执行 hasNext()、next()、hasNext()、next()、next(),第三次调用 next() 返回什么? A. M B. R C. P D. T
某聚合对象按顺序保存元素:月、火、水、木、金。为其创建迭代器,迭代器从首元素开始;hasNext() 只检查是否还有元素而不改变状态,next() 返回当前元素并前进一位。现依次执行:hasNext()、next()、hasNext()、next()、next(),则三次 next() 返回的元素依次是( ) A. 月、火、水 B. 火、水、木 C. 月、月、月 D. 月、火、木
某文档系统用享元对象复用同款印章图案。图案的轮廓、内部纹理和默认字体在所有文档中固定不变;每次盖印时,调用方根据当前文档提供盖印位置与旋转角度。哪项判断正确? A. 轮廓属于外部状态 B. 内部纹理属于外部状态 C. 默认字体属于外部状态 D. 盖印位置与旋转角度属于外部状态
某设备监测软件产品线服务于建筑、矿山和市政场景,三者均采用“数据接入—状态分析—告警输出”的主干架构;接入协议和告警规则因场景而异,且仅矿山产品必须在告警后调用安全联锁模块。为最大化架构复用且避免把矿山专属结构强加给其他产品,哪种设计最合适? A. 将三种产品分别设计完整架构,再通过代码复制共享实现 B. 固化共同主干,将接入协议、告警规则设为显式变化点,并将安全联锁设计为受约束的可选架构部件 C. 将三种产品全部统一为含安全联锁的固定架构,差异仅由运行参数控制 D. 只复用数据接入部件,状态分析与告警输出均按产品重新设计
某校园设备借用系统已收集需求,但尚未进行用例建模。团队需要先明确系统范围,再找出与系统交互的外部角色及其目标,随后形成用例描述。下列哪一项给出了这四项工作的正确先后顺序? A. 识别参与者→明确系统边界→识别用例→编写用例描述 B. 明确系统边界→识别参与者→识别用例→编写用例描述 C. 明确系统边界→识别用例→编写用例描述→识别参与者 D. 识别用例→识别参与者→明确系统边界→编写用例描述
在用例图的语义中,系统边界用于界定被建模系统的范围;参与者与用例分别表示外部角色和系统提供的功能。下列哪一组全部属于用例图的构成元素? A. 参与者、用例、系统边界、关联关系 B. 参与者、用例、活动节点、泳道 C. 类、对象、消息、生命线 D. 状态、转移、事件、守卫条件
某校务系统需求基线已由相关干系人确认。验收评审时,团队发现“通知应及时送达”缺少可判定标准;评审后,教务处又提出新增短信通知。哪项处理顺序符合需求验证与变更管理要求? A. 将“及时”按团队理解直接写入基线,再实现短信通知并补办审批 B. 与相关干系人澄清并记录可验证标准,确认后更新基线;对短信变更评估影响,经授权批准后更新需求并验证 C. 因基线已确认,拒绝澄清标准和短信变更,直接按原文验收 D. 先实现短信通知并修改基线,再请干系人确认是否接受
某文档平台支持提交、预览与发布。现有设计将流程控制、格式转换和存储全部写在一个服务中;新增格式时需修改该服务,新增预览输出方式时也需修改格式转换代码。重构后,提交事件由观察者通知审核流程,文档格式由策略对象转换,发布流程由模板方法统一步骤、保留不同审核规则的扩展点。以下哪项最准确地描述了这些模式的协作关系? A. 观察者负责选择转换算法,策略负责通知审核流程,模板方法负责保存文档 B. 观察者解耦提交与审核通知,策略封装可替换的格式转换,模板方法固定发布骨架并留出审核差异点 C. 策略负责定义发布流程骨架,模板方法负责在提交时广播事件,观察者封装格式转换 D. 三种模式分别替代提交、预览与发布三个模块,彼此不发生协作
某实验室平台有设备甲、乙、丙、丁:甲提交校准请求后需通知乙,乙确认后需通知丙,丙完成后需通知丁;丁的状态变化还可能触发甲重新提交。若要求交互统一协调且设备对象不直接互相发送消息,哪种设计符合中介者模式的交互中心化? A. 各设备保留现有调用关系,另增中介者记录交互日志 B. 各设备只向中介者发送事件,由中介者按规则通知相关设备 C. 甲、乙、丙、丁各自维护其他设备的引用,由调用方选择目标 D. 甲只与乙通信、乙只与丙通信、丙只与丁通信,丁直接通知甲
某智能家居系统中,类 X 将“调高温度”封装为独立请求对象,由遥控器持有并可在队列中排队、撤销;类 Y 在收到“调高温度”调用时,其执行效果取决于当前所处的“制冷/制热”状态,且执行后可能切换到另一状态。下列关于两者所体现的设计模式及其区别的判断,正确的是哪一项? A. X 体现命令模式,Y 体现状态模式;命令模式侧重将请求封装为对象以便参数化与撤销,状态模式侧重行为随内部状态改变 B. X 体现状态模式,Y 体现命令模式;因为二者都封装了行为,封装方式完全等价,可任意互换 C. X 和 Y 都体现命令模式,因为二者都涉及对象方法的调用 D. X 和 Y 都体现状态模式,因为二者都在运行时改变了系统的行为
某状态发布器当前登记了观察者甲、乙、丙。每次状态变化时,发布器先固定本次通知名单,再依次通知名单中的观察者;观察者乙在第一次通知期间注销丙并登记丁,且这些变更从下一次状态变化起生效。随后状态依次变为 8、11。两次通知中,哪些观察者分别会收到通知? A. 第一次甲、乙、丙;第二次甲、乙、丁 B. 第一次甲、乙;第二次甲、乙、丁 C. 第一次甲、乙、丙;第二次甲、乙、丙 D. 第一次甲、乙、丙、丁;第二次甲、乙、丁