如何选择一个设计模式
我们已经见到相当多的设计模式了。在很多场景下他们可以组合使用。不幸的是,对于如何选择概念来设计我们的代码并没有确定的回答。有多种因素会影响最后的决定,你也要问自己下面所列的问题:
- 这段代码是趋于稳定还是将会被修改
- 是否需要动态决定算法的选择
- 代码是否会被他人使用
- 是否有约定的接口
- 计划使用哪种库
- 是否有性能需求或限制
这绝不是一个详尽的问题清单。有大量的因素会指示我们如何来构建系统的决定。然而,真正重要的是要拥有一个清晰的说明(clear specification),如果有些东西看起来没遗漏了,它总是要在第一时间被检查。
在剩余的章节中,我们将会对是否要使用一种设计模式给出一些特定的建议。它们将会帮助你在开始编写代码之前去问正确的问题并作出正确的决定。