设计模式(Design Pattern)的定义:
一套被反复使用、多数人知晓的。经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式的基本要素
模式的名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:
1、模式名称(Pattern name)
2、问题(Problem)
3、解决方案(Solution)
4、效果(Consequences)
设计模式的分类
根据其目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)、
和行为型(Behavioral)三种:
创建型模式主要用于创建对象。
结构型模式主要用于处理类和对象的组合。
行为型模式主要用于描述类或对象怎样交互和怎样分配职责。
根据范围,即模式主要用于处理类之间的关系还是处理对象之间的关系,可分为类模式和对象 模式两种。
类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
对象模式处理对象之间的关系,这些关系在运行时刻变化,更具动态性。
范围\目的 | 创建型模式 | 结构型模式 | 行为型模式 |
类模式 | 工厂方法模式 | (类)适配器模式 | 解释器模式 模板方法模式 |
对象模式 | 抽象工厂模式 建造者模式 原型模式 单例模式 | (对象)适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 | 职责链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
设计模式优点
设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式使得重用成功的设计更加容易,并避免那些导致不可重用的设计方案。
设计模式使得设计方案更加灵活,且易于修改。
设计模式的使用将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本。
设计模式有助于初学者更深入地理解面向对象思想,一方面可以帮助初学者更加方便地阅读和学习现有类库与其他系统中的源代码,另一方面还可以提高软件的设计水平和代码质量。