Q1主动回忆难度 3
1/12
设计模式 · 高级 03
记忆强度
设计模式高级题库第 3 组,共 12 张卡片。
设计模式 · 高级 03
三种方案都能在原能力外增加行为,但它们改变的边界不同。
集合允许在遍历期间被修改时,迭代器必须明确提供哪一种一致性语义,而不能只规定如何取得下一个元素。
访问者模式适合“节点结构相对稳定,但围绕该结构的操作持续增加”的场景,例如对同一棵语法树执行校验、格式化、依赖收集、代码生成和统计。
插件化前端不应把实现发现、对象创建、依赖获取和生命周期管理全部塞入一个万能工厂。
领域事件、界面事件与命令的区分依据是语义和责任,而不是它们是否都通过消息或事件总线传递。
模式不会天然提升可测试性;
服务端渲染中的可变状态容器必须按请求创建,不能直接复用浏览器端的模块级单例。
状态管理应按照所有者、生命周期、共享范围、更新频率和一致性语义划分,而不是先决定使用哪个库。
桥接模式适合拆分两个或更多能够独立变化、同时又需要组合的维度。
服务端渲染和多用户会话中的对象生命周期必须根据状态归属与资源成本设计,不能简单照搬浏览器端的模块级实例。
为提高测试覆盖率而抽象所有模块通常会适得其反,因为可测试性来自稳定边界、可观察结果和可控制的不确定性,并不等于为每个函数建立接口、包装器或模拟对象。
复杂表单的关键不是消灭条件判断,而是让合法状态、允许事件和状态转换可以被完整描述与验证。