模式:描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。这样,你就能一次又一次使用这个方案而不需要重新劳动。
一、为什么要学习设计模式?
软件设计复杂度是由多种因素影响的:
- 客户需求的变化
- 技术平台的变化
- 开发团队的变化
- 市场环境的变化
如何解决复杂性:
- 分解 人们面对复杂性问题的常见做法:分而治之。将多个复杂问题分解为多个子问题。但是分而治之的思想不利于代码复用。
- 抽象。人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化的对象模型。
学习设计模式主要:
- 理解松耦合设计思想
- 掌握面向对象设计原则
- 掌握重构技法改善设计
- 掌握GOF核心设计模式
二、从面向对象谈起
- 面向对象向下&