23种设计模式分类

软件设计模式使人们可以更加简单方便复用成功的设计和体系结构,它通常包含以下几个基本要素:模式名称、别名、动机、问题、解决方案、效果、模式角色、合作关系、实现方法、实用性、已知应用、例程、模式扩展和相关模式等。

设计模式有两种分类方法,一种根据模式的目的来分;另一种根据模式的作用来分。

1.1 根据模式的目的划分

根据模式是用来完成什么样的工作来划分,这种方法可分为创建型模式、结构型模式、行为型模式3种。

1.1.1 创建型模式

用于描述“怎么创建对象”。它的主要特点是“将对象的创建与使用分离”。如,单例、原型、工厂方法、抽象工厂、建造者等5种创建型模式。

1.1.2 结构型模式

用于描述“如何将类或对象按某种布局组成更大的结构”。如,代理、适配器、桥接、装饰、外观、享元、组合等7种结构型模式。

1.1.3 行为型模式

用于描述“类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,以及怎样分配职责”。如,模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录模式、解释器等11中行为模式。

1.2 根据模式的作用划分

根据模式的主要用于类上还是主要用户对象上来分,这种方式可分为类模式和对象模式两种。

1.2.1 类模式

用于处理类与子类之间的关系,这些关系通过继承来建立,是静态的,在编译时便确定下来了。如,工厂方法、(类)适配器、模板方法、解释器等4种类模式。

1.2.2 对象模式

用户处理对象之间关系的,这些关系可以通过组合或聚合来实现,在运行时刻是可以变化的,更具动态性。

表1-1 介绍了这23种设计模式分类

范围/目的

创建型模式

结构型模式

行为型模式

类模式

 工厂方法

  (类)适配器

  模板方法

  解释器

对象模式

  单例

  原型

  抽象工厂

  建造者

  代理

  (对象)适配器

  桥接

  装饰

  外观

  享元

  组合

  策略

  命令

  职责链

  状态

  观察者

  中介者

  迭代器

  访问者

  备忘录

原文地址:https://www.cnblogs.com/guoyu1/p/14058094.html