# 1. 策略模式(Strategy)在表单校验链与权限规则链的工程价值 A 策略模式要求所有校验逻辑必须写在同一函数中 B 策略模式用可替换的策略对象替代大量 if/else,使规则可配置可扩展 ✓ 正确答案 C 策略模式无法新增校验规则 D 策略模式会显著增加分支数量
# 2. 观察者模式与发布订阅模式在前端状态管理与事件流的工程取舍 A 发布订阅通过事件总线中转使发布者与订阅者完全解耦,但需注意事件清理 ✓ 正确答案 B 发布订阅模式中发布者直接持有订阅者引用 C 两种模式在耦合程度上完全相同 D 观察者模式中目标与观察者完全不关联
# 3. 备忘录模式(Memento)在撤销重做与时间旅行的实现 A 撤销重做只需保存当前状态,无需保存历史 B 通过保存状态快照与撤销/重做双栈实现回退,不可变状态利于安全保存 ✓ 正确答案 C 时间旅行必须依赖深拷贝每次状态 D 备忘录模式与不可变性无关
# 4. 模板方法在框架生命周期钩子的应用 A 生命周期钩子可任意改变框架的执行顺序 B 框架定义组件流程骨架,通过生命周期钩子提供可覆写扩展点 ✓ 正确答案 C 模板方法要求开发者覆写所有步骤 D 生命周期钩子与模板方法无关
# 5. 责任链模式在中间件、拦截器、Pipeline 的应用 A 请求沿链传递,每个节点决定继续或终止,实现可插拔处理流程 ✓ 正确答案 B 责任链无法动态调整节点的顺序 C 责任链中所有节点必须一次性处理完整请求 D 责任链要求每个节点必须拦截请求
# 6. 迭代器模式(Iterator Pattern)在 ES6 Iterator 与 Generator 的原生支持 A Generator 无法被 for...of 遍历 B 迭代器协议必须暴露集合内部结构 C 实现 Symbol.iterator 即可被 for...of 统一遍历,Generator 通过 yield 惰性生成序列 ✓ 正确答案 D 原生迭代器不支持异步数据流
# 7. MVVM 模式在前端框架(Vue、React)的实现差异与工程取舍 A Vue 没有 ViewModel 概念 B 两者都使用原生双向绑定 C React 是 MVVM 的典型且唯一实现 D Vue 通过响应式与双向绑定体现 MVVM,React 更多采用单向数据流 ✓ 正确答案
# 8. MVC 模式在现代 SPA 框架(React、Angular、Svelte) A 现代框架仍完全依赖传统 MVC 的 Controller B React 强制使用双向绑定 C Svelte 完全无法管理状态 D 现代框架以组件化与单向数据流替代传统 Controller 的中心化协调 ✓ 正确答案
# 9. 中介者模式(Mediator)在多组件与多模块协调(对话框、表单联动)中相较直接引用与全局事件总线的工程取舍? A 中介者模式必须使用全局事件总线 B 中介者把网状通信收敛为组件与中介的交互,耦合低于直接引用且可追踪性高于事件总线 ✓ 正确答案 C 直接引用比中介者更利于解耦 D 中介者模式不适用于表单联动
# 10. 状态模式在前端状态机(XState)的应用 A 状态机只能用于简单布尔状态 B 状态模式会加剧 if/else 的复杂度 C 状态机显式定义状态与迁移规则,避免非法状态,优于散落的布尔标志 ✓ 正确答案 D XState 无法支持状态嵌套
# 11. 访问者模式(Visitor)在 AST/组件树遍历的工程价值 A 访问者模式要求修改每个节点类才能新增操作 B 访问者将操作与数据结构分离,新增操作无需修改元素类,适合结构稳定操作多变的场景 ✓ 正确答案 C 访问者模式只适用于线性结构 D 访问者模式与遍历无关
# 12. 解释器模式在前端 DSL、规则引擎的应用 A 解释器模式解析并执行可配置规则,使规则可配置化,但需注意 eval 等执行的安全 ✓ 正确答案 B 解释器模式无法处理前端表达式 C 规则引擎必须手写完整文法,无法使用现成库 D 对不可信输入使用 eval 是安全最佳实践
# 13. 命令模式在撤销重做、事务操作的应用 A 命令模式无法支持撤销操作 B 命令模式与备忘录模式完全相同 C 命令封装操作并提供 undo/redo,支持事务回滚与操作记录 ✓ 正确答案 D 命令模式必须保存整个状态快照
# 14. CQRS 模式在复杂表单(命令与查询分离)的工程实践 A CQRS 用命令处理写操作、查询处理读操作,前端常用单向数据流与选择器轻量化实现 ✓ 正确答案 B 前端表单必须完整实现 CQRS 加事件溯源 C CQRS 与状态管理无关 D CQRS 要求读写必须使用同一模型
# 15. Pipeline 模式在前端构建工具(Webpack、Vite)的应用 A Pipeline 只适用于单阶段处理 B 构建工具的处理阶段是固定的、无法扩展 C loader 链与插件钩子按顺序处理并传递结果,使构建过程可插拔可扩展 ✓ 正确答案 D 插件机制与 Pipeline 无关
# 16. Process Manager 模式在前端复杂业务流程编排的现代实践 A 流程管理器只能在组件内内联实现 B 流程管理器集中编排多步骤流程,常结合状态机与异步任务队列实现 ✓ 正确答案 C 流程管理器不支持失败重试与取消 D 复杂流程应散落在各组件中而非集中编排
# 17. 空对象模式(Null Object)在避免空值判断链(可选链与默认值)的工程应用与滥用边界? A 空对象模式永远优于可选链 B 可选链会使空值判断更复杂 C 空对象模式适合需要明确区分空值的校验场景 D 空对象模式用无操作对象替代空判断,但可能掩盖错误,简单空值宜用可选链与默认值 ✓ 正确答案