软件工程(五):设计模式

创建型模式(Creational Patterns)

关注对象的创建过程,封装创建逻辑,避免代码耦合。

模式名称 作用简述
单例模式(Singleton) 确保一个类只有一个实例,并提供全局访问点
工厂方法模式(Factory Method) 定义创建对象的接口,让子类决定实例化哪一个类
抽象工厂模式(Abstract Factory) 提供创建一系列相关或依赖对象的接口
建造者模式(Builder) 分步骤构建复杂对象,解耦构造过程与表示
原型模式(Prototype) 通过复制已有实例来创建新对象,避免重新初始化

结构型模式(Structural Patterns)

关注类与对象的组合方式,解决模块间结构关系。

模式名称 作用简述
适配器模式(Adapter) 将一个接口转换为客户端期望的另一个接口
桥接模式(Bridge) 分离抽象与实现,使它们可以独立变化
组合模式(Composite) 将对象组合成树形结构,使客户端对单个对象和组合对象使用一致
装饰器模式(Decorator) 动态扩展对象功能,避免继承的复杂性
外观模式(Facade) 为子系统提供统一接口,简化调用
享元模式(Flyweight) 共享细粒度对象,减少内存占用
代理模式(Proxy) 为其他对象提供一种代理以控制访问

行为型模式(Behavioral Patterns)

关注对象间通信与职责分配,提高系统灵活性。

模式名称 作用简述
责任链模式(Chain of Responsibility) 按顺序传递请求直到处理者处理它
命令模式(Command) 将请求封装成对象,使得可以参数化、排队和撤销
解释器模式(Interpreter) 给定语言定义其文法并解释句子(如表达式计算器)
迭代器模式(Iterator) 顺序访问聚合对象内部元素而不暴露其内部结构
中介者模式(Mediator) 用中介者对象封装多个对象之间的交互,降低耦合
备忘录模式(Memento) 保存对象内部状态以便恢复
观察者模式(Observer) 当对象状态变化时通知所有依赖对象,实现发布-订阅机制
状态模式(State) 对象在不同状态下行为不同,每个状态封装为一个类
策略模式(Strategy) 定义一系列算法,使它们可以互换
模板方法模式(Template Method) 定义算法骨架,部分步骤延迟到子类实现
访问者模式(Visitor) 在不改变结构的前提下,增加作用于对象的新操作

总结

text 复制代码
【创建型】         【结构型】             【行为型】
- 单例             - 适配器               - 责任链
- 工厂方法         - 桥接                 - 命令
- 抽象工厂         - 装饰器               - 解释器
- 建造者           - 组合                 - 迭代器
- 原型             - 外观                 - 中介者
                   - 享元                 - 备忘录
                   - 代理                 - 观察者
                                        - 状态
                                        - 策略
                                        - 模板方法
                                        - 访问者
相关推荐
嘿黑嘿呦14 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
旧曲重听114 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
承渊政道14 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
apcipot_rain15 天前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
lisw0515 天前
【计算机科学技术】路由器(route):概念、历史、内容与战略!
机器学习·智能路由器·软件工程
培培说证15 天前
大数据、人工智能、计算机、软件工程,到底怎么选?
大数据·人工智能·软件工程
文艺倾年16 天前
【强化学习】MDP、贝尔曼方程与CartPole 编程,20W字总结(二)
人工智能·软件工程·强化学习
郝学胜-神的一滴16 天前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake
小程故事多_8016 天前
AI软件工程范式革命,终结五十年的“手工伪工程”时代
人工智能·软件工程
精益数智小屋17 天前
项目管理看板如何拆解任务进度?项目管理看板解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程