设计模式常见面试题总结
场景
业务规则不断增加后,条件分支、对象创建和跨模块通知常纠缠在一起。直接套模式会增加类数量,完全不用模式又会让变化扩散。
原理
设计模式是针对重复设计问题的协作词汇。工厂隔离创建,策略封装可替换算法,模板方法固定骨架,观察者传播事件,代理控制访问,适配器转换接口,单例约束实例数量。核心判断是哪个维度会变化。
设计步骤
先找到真实坏味道与变化轴;再用最简单接口隔离它;通过测试固定现有行为;选一个能降低耦合的模式小步迁移;最后检查调用链、对象生命周期和失败传播是否比原来更清晰。
权衡
模式带来扩展点,也增加间接层。策略适合算法频繁切换,只有一个实现时可能过度;观察者解耦发布者,却使时序和异常更难追踪;单例访问方便,但隐藏依赖并影响测试。
实践建议
从问题出发,不从模式名称出发。扩展点至少出现两种现实变化再抽象;事件携带最小稳定事实并配置追踪;对象创建集中但不要形成万能工厂。评审时要求说明移除模式会造成什么具体成本,答不出来通常意味着尚未需要。
落地检查
上线前还应做一次桌面演练:准备正常、边界、超时、重复与恶意输入,确认系统的返回、日志和指标彼此对应;在预发布环境模拟依赖不可用、进程重启和配置回滚,验证降级路径不会放大故障。上线时采用小流量观察,提前定义停止条件与负责人。稳定后复盘真实数据,删除没有收益的复杂度,并把新发现的约束补进测试、监控和设计记录,使方案能够随业务持续演进,而不是停留在一次性评审结论。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

