news 2026/4/28 1:00:32

GoF 23种设计模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GoF 23种设计模式

面向对象的设计模式通常指由 GoF(Gang of Four)提出的 23 种经典设计模式。这些模式根据其解决问题的侧重点,主要分为以下三大类: [1]

1. 创建型模式 (Creational Patterns)

这类模式关注“如何创建对象”,旨在将对象的创建与使用分离,增加系统的灵活性。 [1, 2]

  • 单例模式 (Singleton):确保一个类只有一个实例,并提供全局访问点。
  • 工厂方法模式 (Factory Method):定义一个创建对象的接口,让子类决定实例化哪一个类。
  • 抽象工厂模式 (Abstract Factory):创建相关或依赖对象的家族,而无需明确指定具体类。
  • 建造者模式 (Builder):将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
  • 原型模式 (Prototype):通过通过复制(克隆)现有的实例来创建新的实例。 [2, 3, 4]

2. 结构型模式 (Structural Patterns)

这类模式关注“类和对象的组合”,通过组合接口或定义对象组合来获得新的功能。 [1, 4]

  • 适配器模式 (Adapter):将一个类的接口转换成客户希望的另一个接口。
  • 装饰器模式 (Decorator):动态地给一个对象添加一些额外的职责,比生成子类更为灵活。
  • 代理模式 (Proxy):为其他对象提供一种代理以控制对这个对象的访问。
  • 外观模式 (Facade):为子系统中的一组接口提供一个一致的界面。
  • 桥接模式 (Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
  • 组合模式 (Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。
  • 享元模式 (Flyweight):通过共享技术有效地支持大量细粒度的对象。 [2, 4]

3. 行为型模式 (Behavioral Patterns)

这类模式关注“对象之间的通信”,即对象如何交互以及如何分配职责。 [1, 4]

  • 策略模式 (Strategy):定义一系列算法,把它们一个个封装起来,并使它们可相互替换。
  • 观察者模式 (Observer):对象间的一对多依赖关系,当一个对象状态改变时,所有依赖者都会收到通知。
  • 模板方法模式 (Template Method):在操作中定义算法的骨架,而将一些步骤延迟到子类中。
  • 迭代器模式 (Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
  • 责任链模式 (Chain of Responsibility):通过给多个对象处理请求的机会,减少请求发送者和接收者之间的耦合。
  • 状态模式 (State):允许一个对象在其内部状态改变时改变它的行为。
  • 命令模式 (Command):将请求封装成对象,从而使你可用不同的请求对客户进行参数化。
  • 备忘录模式 (Memento):在不破坏封装性的前提下,捕获一个对象的内部状态并在对象之外保存。
  • 中介者模式 (Mediator):用一个中介对象来封装一系列的对象交互。
  • 解释器模式 (Interpreter):给定一个语言,定义它的文法的一种表示。
  • 访问者模式 (Visitor):表示一个作用于某对象结构中的各元素的操作。 [2, 4, 5, 6]

[1] https://blog.csdn.net
[2] https://cloud.tencent.com
[3] https://www.cnblogs.com
[4] https://developer.aliyun.com
[5] https://zhuanlan.zhihu.com
[6] https://juejin.cn
[7] https://www.runoob.com
[8] https://refactoringguru.cn

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 0:53:19

API管理系统源码 API计费系统 最新小齐二开版

概述 在API经济蓬勃发展的当下,无论是个人开发者还是企业团队,都需要一套功能完善、易于管理的API接口平台来整合资源、实现商业化变现。为此,幽络源源码网特别整理并分享这款最新小齐二开版API管理系统源码。这是一款基于PHP开发的专业级AP…

作者头像 李华
网站建设 2026/4/28 0:53:17

如何在电脑上畅玩Switch游戏:Ryujinx模拟器终极指南

如何在电脑上畅玩Switch游戏:Ryujinx模拟器终极指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想象一下,在你的电脑上就能体验《塞尔达传说:王…

作者头像 李华
网站建设 2026/4/28 0:52:16

Git Worktree管理器:AI编码时代的多任务并行开发利器

1. 项目概述:一个为AI编码时代量身定制的Git工作树管理器如果你和我一样,日常开发中频繁使用像Claude Code、Cursor这类AI编码助手,或者需要同时处理多个功能分支,那你一定遇到过这个痛点:如何在同一个代码仓库上&…

作者头像 李华