单例、工厂、策略、装饰器设计模式

news/2024/9/24 23:21:33/

b5d40064cf324cf082832bfa15e4b69e.jpg

 

1. 单例模式(Singleton Pattern):

单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。这种模式的特点是类自己负责保存其唯一的实例,并控制其实例化过程。单例模式广泛应用于配置管理、数据库连接池、日志记录等领域。

 

2. 工厂模式(Factory Pattern):

工厂模式是一种创建型设计模式,它定义了一个接口来创建对象,但让子类决定要实例化哪一个类。工厂模式使得类的实例化延迟到子类中进行,这样做的好处是可以替换产品类型,而不必更改客户端代码。

 

3. 策略模式(Strategy Pattern):

策略模式是一种行为设计模式,它允许在运行时动态改变对象的行为。策略模式将算法封装在单独的类中,并使它们相互替换。这种模式使得算法的变化独立于使用算法的客户。

 

4. 装饰器模式(Decorator Pattern):

装饰器模式是一种结构型设计模式,它允许向对象动态添加额外的功能,而不需要修改其代码。装饰器模式通过包装对象来扩展其功能,这种方式比继承更加灵活。装饰器模式常用于扩展类的功能,比如日志记录、事务处理等。

 

 


http://www.ppmy.cn/news/1456839.html

相关文章

GNU Radio FFT模块结合stream to vector应用及Rotator频偏模块使用

文章目录 前言一、FFT 模块应用1、stream to vector 介绍2、创建 grc 图测试3、运行结果 二、频偏模块1、Rotator 简介2、创建 grc 图测试3、运行结果 前言 写个博客记录一下自己的蠢劲儿,之前我想用 FFT 模块做一些信号分析的东西,官方的 FFT 模块必须…

Java使用JSch实现SSH远程执行命令

前言 有一个奇怪的需求,就是将本地的内容直接提交到远程服务器,并且需要针对文件夹进行处理。所以,这里就直接采用JSch来实现。在这里,感谢秀发浓密的程序猿的这篇博客,给了很大启发。 思路 既然是直接读取文件夹&am…

使用AIGC生成软件类图表

文章目录 如何使用 AI 生成软件类图表什么是 MermaidMermaid 的图片如何保存?mermaid.liveDraw.io Mermaid可以画什么图?流程图时序图 / 序列图类图状态图甘特图实体关系图 / ER图 如何使用 AI 生成软件类图表 ChatGPT 大语言模型不能直接生成各类图表。…

外网禅道配置

exportfs -avrf 修改代码,避免启动太慢:vi /opt/zbox/bin/zbox.php 启动和停止 /opt/zbox/zbox start /opt/zbox/zbox stop

c++ std::unique_lcock 详解

std::unique_lock 是 C 标准库中的一个类,用于管理对互斥锁(std::mutex 或其派生类)的锁定和解锁。它提供了比 std::lock_guard 更灵活的控制,允许在需要时延迟锁定、提前解锁以及递归锁定等。 主要特性 延迟锁定:st…

./build.sh:行1: g++: 未找到命令的错误问题在centos操作系统下面如何解决

目录 g: 未找到命令报错解释g: 未找到命令解决方法题外:gcc和g的区别g常用命令 centos操作系统,执行一个bash,bash命令很简单,就是用g编译一个C的程序。报告错误: ./build.sh:行1: g: 未找到命令 g: 未找到命令报错解释…

Anaconda删除虚拟环境目录pkgs和envs|conda瘦身

这个文件夹里面是专门放不同环境中的包的,只是没有区分环境,都混在一起了, 一般在想要删除一个虚拟环境,除了在命令行中输入conda remove -n your_env_name(虚拟环境名称) --all 然后在envs中删除虚拟环境的文件夹, 还…

Node.js v20.12.2版本执行npm run dev 报openssl 错误2024最新修复方案

Node.js v20.12.2版本执行npm run dev 报openssl 错误2024最新修复方案 故障描述修复方案 故障描述 ERROR SyntaxError: missing ) after argument list C:\Users\xxx\Documents\workspace\WebstormProjects\xxxx\node_modules\webpack\lib\util\createHash.js:135return new …