目录
设计模式:是对已经分析过的问题,以及相关问题解决方案的优秀实践;
1、同样的问题总是重复出现,随着经验的积累,总结出一些非正式的、可在项目中复用的技术,这些技术就是设计模式;设计模式记录并规范了这些问题和解决方案;
2、模式本质是自下而上,而非自上而下的。主要来源于实践。
3、设计模式并非实战案例,实战案例解决方法可以小改动就能直接使用,而设计模式记录的是特定问题的解决方案。不同环境(编程语言不同、应用特性、项目规模)实现细节可能会有所差异
注意:需要防止滥用设计模式,例如没有出现对应的问题,却使用了解决方案。
设计模式核心组成:名称、问题、解决方案和效果。
名称必须兼顾简洁性和描述性,找好的名字一直是开发模式目录中最困难的部分之一
问题和问题发生的环境是模式的基础,识别问题比使用解决方案更难。这是有时设计模式会被误用或过度使用的原因之一;
尽管模式描述了一个问题的一种解决方法,但实现可能会有很多细微差别,切勿盲目照搬书本上的步骤。应当以模式为基础,根据实际情况随机应变,才是最实用的方法。
《企业应用架构模式》的作者福勒,称模式中的解决方案为“半成品”,也就是说,程序员必须理解解决方案的概念并自己实现解决方案
1、意图:对模式目的的简要概括;
2、动机:用一个典型的场景描述问题;
3、适用性:查看模式适用于哪些场景,定义具体场景;
4、结构/交互:描述类和对象关系的UML类图和交互图;
5、实现:实现方案的细节,部署解决方案的技巧;
6、示例代码:简单的示例代码是理解模式的捷径,突出解决方案的核心内容;
7、已知应用:描述了使用模式的真实系统,至少出现在3个公开存在的系统时,模式才能成为真正的模式,称为“三法则”;
8、相关模式:有些模式会与其他模式相关联;
小结:设计模式并非固定的解决方案,设计模式是解决了一般性问题的通用方法。这些解决方案提现了关键的设计原则。