通常当所选编程语言或技术缺少必要的抽象功能时, 人们才需要设计模式。 在这种情况下, 模式是一种可为语言提供更优功能的蹩脚解决方案。
例如, 策略模式在绝大部分现代编程语言中可以简单地使用匿名 (lambda) 函数来实现。
低效的解决方案
模式试图将已经广泛使用的方式系统化。 许多人会将这样的统一化认为是某种教条, 他们会 “全心全意” 地实施这样的模式, 而不会根据项目的实际情况对其进行调整。
如果你只有一把铁锤, 那么任何东西看上去都像是钉子。
在学习了某个模式后, 他们会在所有地方使用该模式, 即便是在较为简单的代码也能胜任的地方也是如此。
例如, 策略模式在绝大部分现代编程语言中可以简单地使用匿名 (lambda) 函数来实现。
低效的解决方案
模式试图将已经广泛使用的方式系统化。 许多人会将这样的统一化认为是某种教条, 他们会 “全心全意” 地实施这样的模式, 而不会根据项目的实际情况对其进行调整。
如果你只有一把铁锤, 那么任何东西看上去都像是钉子。
在学习了某个模式后, 他们会在所有地方使用该模式, 即便是在较为简单的代码也能胜任的地方也是如此。