1、设计模式的定义
建筑大师Christopher Alexander说:“每个设计模式描述在我们周围不断发生的问题,以及该问题的核心解决方案,这样,就可以重复使用该方案而不必做重复劳动”(“Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice")。尽管他所针对是建筑学,但是同样使用于程序设计。设计模式描述了再程序设计过程中针对特定问题所采用的简洁而优雅的解决方案。反映了重复设计和反复编码的成果。
2、设计模式的要素
1、模式名称(pattern name) 描述模式的问题,解决方案和效果。
2、问题(problem)主要描述该模式。
3、解决方案(solution) 该模式的组成成分各自职责、它们之间的关系和协作方式。
4、效果(consequence) 应用该模式的效果和应该权衡的一些问题。
3、设计模式解决问题的步骤
1、找到合适对象。有多种方法完成这个任务,
(1) 写出这个问题的描述,挑出名词和动词,写出相关的类和操作。
(2)关注系统内部的职责和合作关系
(3)建模
2、以适当的粒度分类
3、指定对象的接口
4、描述对象的实现
5、运用复用机制
6、关联运行和编译的结构
7、设计支持变化
4、设计模式相关的一些词汇和表示
类:对象内部的一些数据和内部表示,也定义了对象所能完成的工作
实例化:用类创建对象的过程,其实就是在内存中开发一个空间用于存储新的对象。
继承:特殊类(或子类、派生类)的对象拥有其一般类(或称父类、基类)的全部属性与服务,称作特殊类对一般类的继承
抽象类:为子类定义公共接口,不能实例化
混入类:为其他类提供可选的接口和功能,不能被实例化。