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

23种设计模式简介

一、创建型(5种)

1. 工厂方法模式(Factory Method)

定义:定义一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化延迟到子类进行。
适用场景:需要灵活扩展对象创建逻辑;希望将对象创建与使用解耦。
优点:降低客户端与具体产品的耦合度;符合开闭原则。
缺点:新增产品类型需要修改工厂类层次结构。

总店定义制作流程,分店各自实现特色披萨(北京店-烤鸭披萨,上海店-蟹粉披萨)
在这里插入图片描述

2. 抽象工厂模式(Abstract Factory)

定义:提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。
适用场景:需要创建多个相关产品族;系统独立于产品的具体实现。
优点:保证产品族一致性;隔离具体产品实现。
缺点:扩展新产品族困难;增加系统复杂度。

套餐工厂(家庭装含大披萨+薯条,情侣装含双拼披萨+红酒)
在这里插入图片描述
定义:提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。
适用场景:需要创建多个相关产品族;系统独立于产品的具体实现。
优点:保证产品族一致性;隔离具体产品实现。
缺点:扩展新产品族困难;增加系统复杂度。

3. 建造者模式(Builder)

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用场景:对象构造复杂且有多个步骤;需要不同配置组合。
优点:分离构建与表示;便于扩展新配置。
缺点:产品必须有相似构造步骤。

定制披萨分步构造(选饼底→加料→选酱→烘烤时间)
在这里插入图片描述

4.原型模式(Prototype)

定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
适用场景:对象创建成本高;需要快速复制对象。
优点:高效创建复杂对象;简化实例化过程。
缺点:对值类型属性的深拷贝处理复杂。

复制畅销款披萨配方(深克隆包含所有配料比例)

在这里插入图片描述

5. 单例模式(Singleton)

定义:保证一个类仅有一个实例,并提供一个全局访问点。
适用场景:需要全局唯一实例;资源共享场景。
优点:控制实例数量;节省系统资源。
缺点:违反单一职责原则;测试困难。

全店唯一的烤箱温度控制器

在这里插入图片描述

// 单例模式,确保一个类只

http://www.mrgr.cn/news/93959.html

相关文章:

  • Liunx(CentOS-6-x86_64)使用Nginx部署Vue项目
  • VUE3开发-9、axios前后端跨域问题解决方案
  • 英语学习(GitHub学到的分享)
  • 滑动窗口算法-day7(越长越合法子数组)
  • 18、函数的反柯里化
  • SpringMVC 基本概念与代码示例
  • 【git】 贮藏 stash
  • 《 C++ 点滴漫谈: 三十 》高手写 C++,参数这样传才高效!你真的用对了吗?
  • 【git】删除已加入 .gitignore却仍被git追踪的文件
  • 1分钟看懂React的那些Hook‘s
  • java每日精进 3.11 【多租户】
  • 【性能测试】Jmeter详细操作-小白使用手册(2)
  • win10安装部署DB-gpt,坑多
  • 【Linux docker】关于docker启动出错的解决方法。
  • git规范提交之commitizen conventional-changelog-cli 安装
  • cu118 安装vllm 极简教程 踩坑笔记
  • [pytest] 配置
  • 【08】单片机编程核心技巧:变量命名规范
  • DeepSeek大语言模型下几个常用术语
  • 创建Electron35 + vue3 + electron-builder项目,有很过坑,记录过程