# 前言

设计模式学习总结整理。

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。

# 设计模式的由来

在1994年,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四人合著出版了一本名为Design Patterns - Elements of Reusable Object - Oriented Software(中文译名:设计模式-可复用的面向对象软件元素)的书,该书首次提到了软件开发中设计模式的概念。

四位作者合称GOF(四人帮,全称Gang of Four)。他们所提出的设计模式主要是基于以下的面向对象设计原则:

  • 对接口编程而不是对实现编程。
  • 优先使用对象组合而不是继承。

# 设计模式的使用

设计模式在软件开发中的两个主要用途:

  • 开发人员的共同平台:设计模式提供了一个标准的术语系统,且具体到特定的情景。例如,单例设计模式意味着使用单个对象,这样所有熟悉单例设计模式的开发人员都能使用单个对象,并且可以通过这种方式告诉对方,程序使用的是单例模式。
  • 最佳的实践:设计模式已经经历了很长一段时间的发展,它们提供了软件开发过中面临的一般问题的最佳解决方案。学习这些模式有助于经验不足的开发人员通过一种简单快捷的方式来学习软件设计。

# 设计模式的分类

# 设计模式的三大分类

根据设计模式的参考书中所提到,总共有23种设计模式。这些模式可以分为三大类:

  • 创建型模式:对象实例化的模式,创建型模式用于解构对象的实例化过程。
  • 结构型模式:把类和对象结合在一起形成一个更大的结构。
  • 行为型模式:类和对象如何交互,及划分责任和算法。

下图是整体描述设计模式之间的关系:

# 基础原则

# 创建型模式

# 行为型模式

# 结构型模式

# 参考资料

# Java描述

# C++描述

# PHP描述

# JavaScript描述

最近更新时间: 2020/11/18 11:08:57