首页/开发/代码质量与评审速查/模式误用与过度设计识别
设计原则与模式62 条

模式误用与过度设计识别

设计模式是词汇表而非目标:没有对应变化点就套模式,会引入额外类型与间接层;识别信号——为模式而生的接口只有单一实现、类名里写着模式名却说不清意图。

来源GoF 原始定位:对常见问题的可复用解法(非普适)
信号抽象层无对应扩展压力、代码量随模式膨胀
习惯先写直白实现,出现变化点再引入模式

自检问题

自检问题
□ 这个模式消除的具体坏味道是什么?
□ 不用它,最坏情况是什么?
□ 当前有第二种实现或第二个变化轴吗?
□ 半年后新人能读懂这层抽象吗?
与「夸夸其谈通用性」坏味道互查:「现在不需要,但将来可能」通常就是删除信号。

易错点

  • 评审以「用了什么模式」为优劣标准:诱发表演式设计
  • 为删除模式而删除:先确认变化点是否真实存在

数据来源与参考

  • 《设计模式》(GoF)序言与使用说明;《重构》第 2 版 Speculative Generality
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌