概述 Overview
软件模式 Software Pattern
- 软件模式 software pattern 是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括架构模式 architecture pattern、分析模式 analysis pattern 和过程模式 process pattern 等,实际上,在软件生存期的每一个阶段都存在着一些被认同的模式
- 软件模式可以认为是对软件开发这一特定“问题”的“解法”的某种统一表示,软件模式等于一定条件下的出现的问题以及解法
- 软件模式的基础结构由4个部分构成:问题描述 problem、前提条件 context / constraint、解法 solution 和 效果 consequence

- 软件模式与具体的应用领域无关,在模式发现过程中需要遵循大三律,即只有经过三个以上不同类型(或不同领域)的系统的校验,一个解决方案才能从候选模式升格为模式
设计模式 Design Pattern
设计模式 design pattern 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性
设计模式的基本要素
- 模式名称:pattern name
- 问题:problem
- 目的、解决方案:intent / solution
- 效果:consequence
- 实例代码:sample code
- 相关设计模式:related patterns
关键元素
- 模式名称
- 问题
- 解决方案
- 效果
设计模式分类
- 根据目的分类
- 创建型模式 creational patterns 主要用于创建对象
- 结构型模式 structural patterns 主要用于处理类或对象的组合
- 行为型模式 behavioral patterns 主要用于描述对类或对象怎样交互和怎样分配职责
- 根据范围分类
- 类模式 class patterns 处理类与子类之间的关系,这些关系通过继承 inheritance 建立,在编译时刻就被确定下来,是属于静态 static 的
- 对象模式 object patterns 处理对象间的关系,这些关系在运行时刻变化,更具动态 dynamic 性

高频英文术语 Glossary
| English Term | 中文 | 备注 |
|---|---|---|
| Software Pattern | 软件模式 | 软件开发中可复用的问题-解法结构 |
| Design Pattern | 设计模式 | 面向对象设计经验的总结 |
| Architecture Pattern | 架构模式 | 架构层面的复用方案 |
| Analysis Pattern | 分析模式 | 分析阶段的复用经验 |
| Process Pattern | 过程模式 | 软件过程中的复用经验 |
| Pattern Name | 模式名称 | 用于沟通的模式名字 |
| Problem | 问题 | 模式要解决的问题 |
| Context | 上下文 / 前提条件 | 模式适用的环境和约束 |
| Solution | 解法 | 模式的核心结构和做法 |
| Consequence | 效果 / 后果 | 使用模式后的收益和代价 |
| Creational Pattern | 创建型模式 | 处理对象创建 |
| Structural Pattern | 结构型模式 | 处理类或对象组合 |
| Behavioral Pattern | 行为型模式 | 处理对象交互和职责分配 |
| Class Pattern | 类模式 | 通过继承建立,较静态 |
| Object Pattern | 对象模式 | 通过对象组合建立,较动态 |