设计模式[1]——分类&口诀

设计模式[1]------分类&口诀

设计模式(Design Patterns)主要指GoF(Gang of Four)提出的23种经典模式,按照目的分为三大类:创建型(Creational) (关注对象创建机制)、结构型(Structural) (关注类和对象的组合)、行为型(Behavioral)(关注对象间的交互和责任分配)。以下表格列出所有模式,按类别归纳,包含简要描述(言简意赅)。表格基于标准分类,便于对比。

类别 模式名称 简要描述
创建型 (Creational) (5种:处理对象创建,避免直接实例化) Abstract Factory (抽象工厂) 提供接口创建相关对象家族,而不指定具体类。
Builder (生成器) 分步构建复杂对象,分离构造与表示。
Factory Method (工厂方法) 定义接口创建对象,由子类决定实例化类。
Prototype (原型) 通过克隆现有对象创建新对象。
Singleton (单例) 确保类只有一个实例,并提供全局访问点。
结构型 (Structural) (7种:处理实体组合,形成更大结构) Adapter (适配器) 转换接口,使不兼容类能合作。
Bridge (桥接) 分离抽象与实现,可独立变化。
Composite (组合) 将对象组合成树形结构,表示部分-整体层次。
Decorator (装饰器) 动态添加职责,而不影响其他对象。
Facade (外观) 为子系统提供统一接口,简化访问。
Flyweight (享元) 共享细粒度对象,减少内存使用。
Proxy (代理) 为其他对象提供占位符,控制访问。
行为型 (Behavioral) (11种:处理算法、责任和通信) Chain of Responsibility (责任链) 沿处理者链传递请求,避免耦合。
Command (命令) 将请求封装为对象,支持撤销/队列。
Interpreter (解释器) 定义语言的文法,并解释句子。
Iterator (迭代器) 提供顺序访问集合元素,而不暴露内部。
Mediator (中介者) 定义对象交互中介,减少直接依赖。
Memento (备忘录) 捕获对象内部状态,支持恢复。
Observer (观察者) 定义一对多依赖,对象变化时通知他人。
State (状态) 允许对象在内部状态变化时改变行为。
Strategy (策略) 定义算法家族,可互换使用。
Template Method (模板方法) 定义算法骨架,子类实现步骤。
Visitor (访问者) 在不改变元素类前提下,定义新操作。

记忆口诀

创五构七行十一,
抽象建厂原单例;
适桥组装外享代,
责命解迭中备观,
状策模访莫遗忘。

  • 创五:创建型5种(抽象工厂、生成器、工厂方法、原型、单例)。
  • 构七:结构型7种(适配器、桥接、组合、装饰、外观、享元、代理)。
  • 行十一:行为型11种(责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者)。
相关推荐
想学后端的前端工程师10 小时前
【Java设计模式实战应用指南:23种设计模式详解】
java·开发语言·设计模式
Revol_C10 小时前
开箱即用!轻量级轮询方案,支持同步获取轮询结果!
前端·javascript·设计模式
聪明努力的积极向上13 小时前
【设计】分批查询数据通用方法(基于接口 + 泛型 + 定点复制)
开发语言·设计模式·c#
long31614 小时前
类与对象 | 低级别设计 (LLD)
java·spring boot·学习·程序人生·spring·设计模式·学习方法
郝学胜-神的一滴15 小时前
Linux 下循环创建多线程:深入解析与实践指南
linux·服务器·c++·程序人生·算法·设计模式
syt_101316 小时前
设计模式之-组合模式
设计模式·组合模式
天下一般16 小时前
go语言设计模式<一>模板方法
开发语言·设计模式·golang
syt_101316 小时前
设计模式之-命令模式
设计模式·命令模式
有一个好名字16 小时前
设计模式-工厂方法模式
java·设计模式·工厂方法模式
JavaBoy_XJ16 小时前
创建型-原型模式
原型模式