# 软件设计模式

> 在软体工程中，设计模式（design pattern）是对软体设计中普遍存在（反复出现）的各种问题，所提出的解决方案。这个术语是由埃里希·伽玛（Erich Gamma）等人在1990年代从建筑设计领域引入到计算机科学的。 设计模式并不直接用来完成程式码的编写，而是描述在各种不同情况下，要怎么解决问题的一种方案。面向对象设计模式通常以类别或物件来描述其中的关系和相互作用，但不涉及用来完成应用程式的特定类别或物件。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象，避免会引起麻烦的紧耦合，以增强软体设计面对并适应变化的能力。 并非所有的软体模式都是设计模式，设计模式特指软体“设计”层次上的问题。…

- ID: m12371
- 分类: create
- 领域: 设计思维

## 定义

针对软件设计中反复出现的问题的可复用解决方案模板。经典23种模式分为：- 创建型（如单例、工厂）- 结构型（如适配器、装饰器）- 行为型（如观察者、策略）脚手架作用：用模式语言提升设计沟通效率。设计模式是经验的结晶；命名模式让团队能用一个词表达复杂设计意图，也帮助新手快速学习成熟解决方案。

## 机制

对反复出现的设计问题给出可复用的解决方案模板。其机制是封装变化、解耦职责、面向接口，提升可维护与可扩展。

## 练习

按场景套用经典模式（工厂、单例、观察者、策略、装饰器等）；优先用组合而非继承。

## 脚手架用法

用模式语言提升设计沟通效率。设计模式是经验的结晶；命名模式让团队能用一个词表达复杂设计意图，也帮助新手快速学习成熟解决方案。

[阅读网页](https://thinkingmodels.site/entries/detail/m12371)
