每一个设计模式都可以从「前提条件(Context)」、「目标问题(Theme或Problem)」、「解决方案(Solution)」三方面进行阐述,并且给出了从用户需求分析到建筑环境结构设计直至景点实例的过程模型。
所谓模式,是在特定环境下人们解决某类重复出现问题的一套成功或者有效的解决方案。
最早将模式的思想引入软件工程方法学的是 1991-1992 年以「四人组」自称的4位著名软件工程学者,他们在 1994 年规划发表了 23 种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟
软件模式是将模式的的一般概念应用于软件开发领域,即软件开发的总体指导思路或者参考样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等
软件模式是指在软件开发过程中某些可重现问题的有效解决方法,其基础结构主要由四部分构成,包括问题描述(待解决的问题是什么)、前提条件(在何种环境或者约束条件下使用)、解法(如何解决)和效果(有哪些优缺点)
设计模式的定义:设计模式是一套被反复使用的,多数人知晓的,经过分类编目的代码设计经验的总结,使用设计模式是为了可以重用代码,让代码更容易被他人理解并且提高代码的可靠性
设计模式一般包括模式名称、问题、目的、解决方案、效果等组成要素,其中关键要素是模式名称、问题、解决方案和效果
- 模式名称,通过一两个词来为模式命名,以便我们更好的理解模式并方便开发人员之间的交流,绝大多数模式都是根据其功能或者模式结构来命名
- 问题,描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因
- 解决方案,描述了一个设计模式的组成部分,以及这些组成部分之间的相互关系、各自的职责和协作方式,通常解决方案通过 UML 类图和核心代码进行描述
- 效果,描述了模式的优缺点以及在使用模式时应权衡的问题
根据用途,设计模式可以分为创建型、结构型和行为型三种
- 创建型模式,主要用于描述如何创建对象
- 结构型模式,主要用于描述如何实现类或者对象的组合
- 行为型模式,主要用于描述类和对象怎样交互以及怎样分配职责
在 23 种设计模式中,包含 5 种创建型设计模式,7 种结构型设计模式和 11 种行为型设计模式