设计模式-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 种设计模式

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

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

相关推荐
Dovis(誓平步青云)1 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
IT_陈寒1 小时前
Python的线程池把我CPU跑满了,原来少传了个参数
前端·人工智能·后端
wuqingshun3141592 小时前
springBoot是如何通过main方法启动web项目的?
前端·spring boot·后端
程序员爱钓鱼2 小时前
Rust Option 详解:安全处理“可能存在,也可能不存在”的值
前端·后端·rust
程序员爱钓鱼2 小时前
Go Modules 包管理详解:go.mod、go.sum 与依赖管理
前端·后端·go
小满zs9 小时前
Go语言第三章(五谷轮回)
后端·go
霸道流氓气质13 小时前
SpringBoot中通用工具类库(Utils)封装与使用实践
spring boot·后端·python
MemoleCard16 小时前
深度解析Java当中的锁机制
后端
wear工程师16 小时前
ThreadLocal 在线程池里为什么会串数据:别只会答内存泄漏
java·后端