什么是设计模式? --源自建筑学和人类学
每个模式描述了一个在我们周围不断重复发生的问题以及解决的问题方案的核心。
- 如城市和建筑模式,在面向对象的解决方案里,用对象和接口代替了墙壁和门窗
- 这两类的模式的核心在于提供了相关问题的解决方案
四个基本要素:
- 模式名称(pattern name)
- 问题(problem):应该何时使用
- 解决方案(solution)
- 效果(consequences):考虑的限制和约束因数
模式关键特征
- 名称
- 意图
- 问题
- 解决方案
- 参与者和协作者
- 效果
- 一般性结构:模式典型结构的标准图
为什么学习设计模式?
- 提供观察分析和设计更高视角(高层次对话,焦点在于解决方案,而非细节)
- 避免过早处理细节(细节可能使解决方案混乱不明)
- 木匠模式,帮助我们既见树木,又见森林
学习设计模式带来好处?
- 改善团队沟通和个人学习
- 代码更易于维护
- 更加深入理解面向对象原则(其概念: 封装,继承,多态)
- 开阔设计视野,提供更好的策略(即使不用模式)