1. 设计功能包括约束和目标
2. 设计模式并不是一层不变的,如果你的设计模型和经典的设计模式有区别,不妨记下来,方便后人理解。
3. 问题都有两面性,就像目标和约束,二者终究要有一个平衡点,否则无法稳定。May the force be with you!
4. Elements of Reusable Object-Oriented Software, by Gamma, Helm, Johnson & Vlissides (Addison Wesley). –23种设计模式
5. 设计模式的名字很重要,一个好的名字能够方便开发者之间的共享与沟通。
6. 如果一个设计适用于3种场合,我们可以称其为模式。
7. 创建新的设计模式的过程:练习;思考;将思路写下来;让别人使用你的模式; 不断优化。
8. 创建型模式:着重于创建一个对象,致力于解耦调用者和被调用者
9. 行为型设计模式:关注对象之间的相互影响,能力分布
10. 结构性设计模式:将对象组合成功能更强大的对象
11. Keep it simple (KISS)
12. 不仅要在设计阶段考虑引入设计模式,在重构阶段也应该考虑设计模式。
13. 如果系统真的可能变化,那应当考虑引入设计模式处理变化的部分。但是如果变化只是一个假设,不要引入设计模式,因为这将必然增加系统的复杂性,而系统却不一定变化。
14. 设计模式可以避免常见的错误,也是设计人员的沟通语言。
15. 两本书:The Timeless Way of Building ,A Pattern Language.
16. 引入不合适的设计模式,将会使问题更复杂。抵制模式的诱惑,挖掘引入模式的负面影响。