当前位置: 首页 > ai >正文

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

创建型模式(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)在不改变结构的前提下,增加作用于对象的新操作

总结

【创建型】         【结构型】             【行为型】
- 单例             - 适配器               - 责任链
- 工厂方法         - 桥接                 - 命令
- 抽象工厂         - 装饰器               - 解释器
- 建造者           - 组合                 - 迭代器
- 原型             - 外观                 - 中介者- 享元                 - 备忘录- 代理                 - 观察者- 状态- 策略- 模板方法- 访问者
http://www.xdnf.cn/news/4560.html

相关文章:

  • 【黑马程序员RabbitMQ高级】自用笔记
  • redis多路复用IO模型 以及 6.0引入的多线程模型
  • string[字符串中第一个的唯一字符][蓝桥杯]
  • 数据中台-常用工具组件:DataX、Flink、Dolphin Scheduler、TensorFlow和PyTorch等
  • Oracle 19c中的私有临时表
  • 不再踩坑!React.memo正确用法及性能优化实战
  • 【C++ Qt】多元素控件(ListWidget、TableWidget、TreeWidget)
  • 阿里云ddos云防护服务器有哪些功能?ddos防御手段有哪些??
  • 若依框架Ruoyi-vue整合图表Echarts中国地图标注动态数据
  • python调用国税乐企直连接口开数电票之查询税收分类编码信息
  • spring cloud alibaba nacos 服务注册
  • 远程桌面软件推荐
  • Java 中的 this 关键字完全指南:从原理到实战应用
  • C语言--字符函数
  • 面向智能体开发的声明式语言:可行性分析与未来图景
  • 搭建部署企业级Harbor镜像仓库
  • Docker容器网络架构深度解析与技术实践指南——基于Linux内核特性的企业级容器网络实现
  • 2D横板跳跃游戏笔记(查漏补缺ing...)
  • 可重入锁理解(redission)
  • 5.7线性动态规划1
  • Linux系统基本指令和知识指南
  • 解锁AI绘画新境界!开源文生图解锁AI图像生成无限创意
  • Android 数据持久化之 Room 数据库存储
  • 电子商务商家运营简历模板
  • 协变(Covariance)与逆变(Contravariance)的入门理解
  • STC单片机--仿真调试
  • LLM词编码机制:词映射
  • Git笔记
  • 数据结构、刷leetcode返航版--二分【有序】5/7
  • HPDDM库使用指南与示例