设计模式:解决固定问题的固定方法。
1.模式起源于建筑而非软件业。
2.模式(Pattern)之父 美国加利福尼亚大学环境结构中心研究所所长Christopher Alexander博士。
模式的诞生和定义。Alexander 给出了关于模式的经典定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的解决方案,无需再重复相同的工作。
模式是在特定环境中解决问题的一种方案。
软件模式是将模式的一般概念应用于软件开发领域,即软件开发的总体知道思路或参照样板。 软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件的生命期的每一个阶段都存在着一些被认同的模式。
软件模式可以认为是对软件这一特定“问题”的“解法”的某种统一表示,他和Alexander所描述的模式定义完全相同,即软件模式等于一定条件下的出现的问题以及解法。软件模式的基础结构有4部分构成:问题描述、前提条件(环境或约束条件)、解法和效果。
设计模式的定义:设计模式是一套被反复使用’多数人知晓、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人;理解、保证代码可靠性。
设计模式的基本要素:设计模式一般有如下几个基本要素:设计名称、问题、目的、解决方案、效果、实力代码和相关设计模式,其中的关键元素包括以下四个方面:
模式名称 问题 解决方案 效果
设计模式的学习步骤:
模式动机与定义
模式结构与分析
模式实例与解析
模式效果与应用
模式扩展
设计模式的分类根据其目的可分为创建型、结构型、行为型。
创建型主要用于创建对象。
结构型模式主要用于处理或对象的组合。
行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。
模式的分类:即模式主要处理类之间的关系还是处理结构之间的关系,可分为类模式和对象模式两种:
类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
对象模式处理对象间的关系,这些关系在运行时刻变化更具动态性。
创建型设计模式:抽象工厂模式 建造者模式 工厂方法模式 原型模式 单例模式
结构型模式:适配性模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式
行为模式: 指责连模式 ,命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察模式 状态模式 策略模式 模板方法模式 访问者模式