设计模式-23种设计模式的说法

"23种设计模式"这一经典分类最早系统性地提出是在1994年出版的著作 《Design Patterns: Elements of Reusable Object-Oriented Software》(中文译名:《设计模式:可复用面向对象软件的基础》)中。该书由四位作者------Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 共同撰写,他们也因此被称为"GoF"(Gang of Four,四人组)。

大多数平常用不到,但是有些经常可见。

比如策略模式,Strategy模式其实就是把方法(策略)当作可替换的变量传进去。将"行为"作为一等公民(first-class citizen)传入,比如传一个函数、lambda 表达式或接口实现。

参见:

每日知识-设计模式-状态机模式-掘金

每日知识-设计模式-观察者模式 - 掘金

这23种设计模式根据其目的和作用被分为三大类:


一、创建型模式(Creational Patterns)

关注对象的创建机制,帮助系统独立于对象的创建、组合和表示方式。

  • Abstract Factory(抽象工厂)
  • Builder(建造者)
  • Factory Method(工厂方法)
  • Prototype(原型)
  • Singleton(单例)

共 5 种


二、结构型模式(Structural Patterns)

处理类或对象的组合,以形成更大的结构,同时保持结构的灵活性和效率。

  • Adapter(适配器)
  • Bridge(桥接)
  • Composite(组合)
  • Decorator(装饰器)
  • Facade(外观)
  • Flyweight(享元)
  • Proxy(代理)

共 7 种


三、行为型模式(Behavioral Patterns)

关注对象之间的职责分配和通信机制,描述对象或类之间的交互与协作。

  • Chain of Responsibility(责任链)
  • Command(命令)
  • Interpreter(解释器)
  • Iterator(迭代器)
  • Mediator(中介者)
  • Memento(备忘录)
  • Observer(观察者)
  • State(状态)
  • Strategy(策略)
  • Template Method(模板方法)
  • Visitor(访问者)

共 11 种


总计:5 + 7 + 11 = 23 种设计模式

这些模式至今仍是面向对象软件设计中的重要参考,广泛应用于各种编程语言和框架中。

之前已经写过几种,后面慢慢补。

相关推荐
深蓝AI2 小时前
JWT 不是登录方案:三种登录态架构怎么选
后端
starzy19903 小时前
深入理解Scala Map:从实现原理到工程实践
开发语言·后端·scala
卷无止境4 小时前
凌晨三点的绿灯
后端
excel4 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
风若飞6 小时前
Spring Ai 入门遇到问题1
java·后端·spring
AI入职记7 小时前
Spring AI 结构化输出:结构 100% 通过,严格准确率只有 57%
后端·ai编程
aZhe的全栈知识分享7 小时前
AI 还原 Figma 效果总达不到预期?先别急着让它写代码
前端·后端·面试
码事漫谈7 小时前
WorkBuddy 一直更新卡死?两个毛病,一套处理办法
后端
函数小陈7 小时前
阿里云部署DSH与RAM完成运维
前端·后端
aurora_zjj7 小时前
一次持续 3 年的 OpenResty 死循环排查:最终定位到 LuaJIT ARM64 的一条汇编指令
后端