设计模式的分类
2015-10-25 22:40
423 查看
设计模式的种类很多,目前流程的面向对象设计模式,仅1995年“gangof four”描述的就有二十多种,我们称之为GoF模式.
设计模式的作用
(1)
重用设计,重用设计比重用代码更有意义,它会自动带来代码的重用。
(2)
为设计提供共用的词汇,每个模式名就是一个设计词汇,其概念使得程序员间的交流更加方便。
(3)
在开发文档中采用模式词汇可以让其他人更容易理解你的想法,理解为什么你会这样做,你都做了些什么。编写开发文档也更加容易。
(4)
应用设计模式可以让重构系统变得容易,可确保开发正确的代码,并降低在设计或实现中出现错误的 可能性,还可以为重写其他应用程序提供很好的系统框架。
(5)
正确使用设计模式,可以节省大量的时间。
GoF设计模式的分类
GoF模式在粒度和抽象层次上各有不同,分类很明显。
1.根据目的准则分类
就是说,指定的模式用来完成什么样的工作。可分为三种:
(1) Creational(创建型):与对象创建有关。
(2) Structural(结构型):处理类或对象的组合。
(3) Behavioral(行为型):描述类或对象如何交互及如何分配职责。
2.根据范围准则分类
即指定的模式用于类还是用于对象,分为两种:
(1)类模式:用于处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时就已经确定下来了。因为从某种意义上说,几乎所有模式都是使用继承机制,因此此处的“类模式”是指集中处理类间关系的模式,只有很少部分模式属于此类。
(2)对象模式:用于处理对象间的关系,这些关系具有动态性,在运行期间是可以变化的。
下图是每种类型相对应的设计模式:
![](https://img-blog.csdn.net/20151025223939548?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
设计模式的作用
(1)
重用设计,重用设计比重用代码更有意义,它会自动带来代码的重用。
(2)
为设计提供共用的词汇,每个模式名就是一个设计词汇,其概念使得程序员间的交流更加方便。
(3)
在开发文档中采用模式词汇可以让其他人更容易理解你的想法,理解为什么你会这样做,你都做了些什么。编写开发文档也更加容易。
(4)
应用设计模式可以让重构系统变得容易,可确保开发正确的代码,并降低在设计或实现中出现错误的 可能性,还可以为重写其他应用程序提供很好的系统框架。
(5)
正确使用设计模式,可以节省大量的时间。
GoF设计模式的分类
GoF模式在粒度和抽象层次上各有不同,分类很明显。
1.根据目的准则分类
就是说,指定的模式用来完成什么样的工作。可分为三种:
(1) Creational(创建型):与对象创建有关。
(2) Structural(结构型):处理类或对象的组合。
(3) Behavioral(行为型):描述类或对象如何交互及如何分配职责。
2.根据范围准则分类
即指定的模式用于类还是用于对象,分为两种:
(1)类模式:用于处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时就已经确定下来了。因为从某种意义上说,几乎所有模式都是使用继承机制,因此此处的“类模式”是指集中处理类间关系的模式,只有很少部分模式属于此类。
(2)对象模式:用于处理对象间的关系,这些关系具有动态性,在运行期间是可以变化的。
下图是每种类型相对应的设计模式:
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- PHP设计模式之装饰者模式代码实例
- php设计模式之单例模式实例分析
- 介绍php设计模式中的工厂模式
- PHP设计模式之适配器模式代码实例
- 深入浅出23种设计模式
- 浅谈c#设计模式之单一原则
- C#设计模式之观察者模式实例讲解
- C#设计模式之单例模式实例讲解
- 深入理解JavaScript系列(28):设计模式之工厂模式详解
- 面向对象设计模式的核心法则
- JavaScript设计模式之单件模式介绍
- 深入理解JavaScript系列(25):设计模式之单例模式详解
- JavaScript设计模式之外观模式实例