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

什么是设计模式?常用的设计有哪些?

  • 单例模式
  • 工厂模式
  • 代理模式(proxy)

一、设计模式

设计模式是前辈们经过无数次实践所总结的一些方法(针对特定问题的特定方法)

这些设计模式中的方法都是经过反复使用过的。

二、常用的设计模式有哪些?

1、单例模式(懒汉式、饿汉式)

步骤: 1、构造方法私有化,让除了自己类能创建,其他类都不能创建。

2、在自己的类中创建一个单实例(懒汉模式是在需要的时候才创建,饿汉模式是一开始就创建) 3、提供一个方法获取该实例对象 饿汉式代码实例: ...

单例式:

public class Singleton {private static Singleton singleton;private Singleton() {}public static Singleton getInstance() {if (singleton == null) {singleton = new Singleton();}return singleton;}
}

懒汉式:

public class Singleton {private static Singleton instance;private Singleton (){}public static synchronized Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}

饿汉式:

public class Singleton {private static Singleton instance = new Singleton();private Singleton (){}public static Singleton getInstance() {return instance;}
}

2、工厂模式 spring IOC就是使用了工厂模式,对象的创建都交给一个工厂去创建。

3、代理模式 spring AOP就是使用的动态代理模式。

相关文章:

什么是设计模式?常用的设计有哪些?

单例模式工厂模式代理模式(proxy) 一、设计模式 设计模式是前辈们经过无数次实践所总结的一些方法(针对特定问题的特定方法) 这些设计模式中的方法都是经过反复使用过的。 二、常用的设计模式有哪些? 1、单例模式&…...

clickHouse部署

docker仓库地址 https://hub.docker.com/ 1、docker环境搭建 # 1.先安装yml yum install -y yum-utils device-mapper-persistent-data lvm2 # 2.设置阿里云镜像 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 3.查…...

Flutter实现倒计时功能,秒数转时分秒,然后倒计时

Flutter实现倒计时功能 发布时间:2023/05/12 本文实例为大家分享了Flutter实现倒计时功能的具体代码,供大家参考,具体内容如下 有一个需求,需要在页面进行显示倒计时,倒计时结束后,做相应的逻辑处理。 实…...

【hadoop】windows上hadoop环境的搭建步骤

文章目录 前言基础环境下载hadoop安装包下载hadoop在windows中的依赖配置环境变量 Hadoop hdfs搭建创建hadfs数据目录修改JAVA依赖修改配置文件初始化hdfs namenode启动hdfs 前言 在大数据开发领域中,不得不说说传统经典的hadoop基础计算框架。一般我们都会将hadoo…...

一周在榜9本计算机专业新书

本周在榜计算机专业新书9本。 1、扩散模型从原理到实战 开启AI绘画新时代!AIGC大模型来临,配套赠送Diffusion视频课程! HuggingFace平台学习实战,常春藤盟校数据科学硕士与算法工程师带你从理论到实战,了解、掌握扩散…...

CSS变形与动画(二):perspctive透视效果 与 preserve-3d 3d效果(奥运五环例子)

文章目录 perspective 3d透视效果preserve-3d 3d嵌套效果例子 奥运五环 backface-visibility 背面效果 perspective 3d透视效果 perspective 指定了观察者与 z0 平面的距离&#xff0c;使具有三维位置变换的元素产生透视效果。z>0 的三维元素比正常大&#xff0c;而 z<0 …...

[论文笔记]Glancing Transformer for Non-Autoregressive Neural Machine Translation

引言 这是论文Glancing Transformer for Non-Autoregressive Neural Machine Translation的笔记。 传统的非自回归文本生成速度较慢,因为需要给定之前的token来预测下一个token。但自回归模型虽然效率高,但性能没那么好。 这篇论文提出了Glancing Transformer,可以只需要一…...

视觉学习(七)---Flask 框架下接口调用及python requests 实现json字符串传输

在项目实施过程中需要与其他系统进行接口联调&#xff0c;将图像检测的结果传递给其他系统接口&#xff0c;进行逻辑调用。这中间的过程可以通过requests库进行实现。 1.安装requests库 pip install requests2.postman 接口测试 我们先通过postman 了解下接口调用&#xff0…...

unity编写树形结构的文件管理页面

项目中需要实现点击“”按钮展开对应分类下的所有训练科目&#xff0c;再次点击“–”按钮将对应分类下的训练科目隐藏并收起整个面板。对此&#xff0c;编写一个类&#xff0c;将其挂载到树形结构的父类上&#xff0c;代码如下&#xff1a; using UnityEngine; using UnityEn…...

基于单片机的家用智能浇灌系统

1、开发环境 keil5&#xff0c;STM32CubeMX、Altium Designer 2、硬件清单 单片机&#xff1a;STM32F051K8Ux 土壤湿度传感器&#xff1a;TL - 69 温度传感器&#xff1a;DS18B20&#xff08;数字传感器直接输出数字信号&#xff09; OLED屏幕&#xff1a;OLED12864、 水…...

Solr的入门使用

Solr是Apache下的一个顶级开源项目&#xff0c;采用Java开发&#xff0c;它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言&#xff0c;同时实现了可配置、可扩展&#xff0c;并对索引、搜索性能进行了优化&#xff0c;被很多需要搜索的网站中广泛使用。…...

css鼠标样式 cursor: pointer

cursor: none; cursor:not-allowed; 禁止选择 user-select: none; pointer-events:none;禁止触发事件, 该样式会阻止默认事件的发生&#xff0c;但鼠标样式会变成箭头...

【解决】Kafka Exception thrown when sending a message with key=‘null‘ 异常

问题原因&#xff1a; 如下图&#xff0c;kafka 中配置的是监听域名的方式&#xff0c;但程序里使用的是 ip:port 的连接方式。 解决办法&#xff1a; kafka 中配置的是域名的方式&#xff0c;程序里也相应配置成 域名:port 的方式&#xff08;注意&#xff1a;本地h…...

中心极限定理 简明教程

中心极限定理是概率论中的一组定理&#xff0c;它们描述了一些独立随机变量的和或平均值的分布在一定条件下趋近于正态分布的现象。中心极限定理有多种形式&#xff0c;其中最常见的是独立同分布的中心极限定理&#xff0c;它可以用数学公式表示为&#xff1a; 前提条件&#x…...

商城-学习整理-基础-库存系统(八)

一、整合ware服务 1、配置注册中心 2、配置配置中心 3、配置网关&#xff0c;重启网关 二、仓库维护 http://localhost:8001/#/ware-wareinfo 在前端项目module中创建ware文件夹保存仓库系统的代码。 将生成的wareinfo.vue文件拷贝到项目中。 根据功能&#xff0c;修改后台接…...

【C++ 学习 ⑬】- 详解 list 容器

目录 一、list 容器的基本介绍 二、list 容器的成员函数 2.1 - 迭代器 2.2 - 修改操作 三、list 的模拟实现 3.1 - list.h 3.2 - 详解 list 容器的迭代器 3.2 - test.cpp 一、list 容器的基本介绍 list 容器以类模板 list<T>&#xff08;T 为存储元素的类型&…...

设计模式十五:命令模式(Command Pattern)

命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它旨在将请求或操作封装成一个对象&#xff0c;从而允许你将不同的请求参数化&#xff0c;并且能够在不同的时间点执行或者队列化这些请求。这种模式使得请求发送者与接收者之间解耦&#xff…...

FPGA GTP全网最细讲解,aurora 8b/10b协议,HDMI视频传输,提供4套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP 接收接口GTP IP核调用和使用 4、设计思路框架HDMI输入视频配置及采集视频数据组包GTP aurora 8b/10b数据对齐视频数据解包图像…...

用dcker极简打包java.jar镜像并启动

用dcker极简打包java.jar镜像并启动 一、本地打包好jar包 二、新建文件夹&#xff0c;将步骤1中的jar包拷贝到文件夹下 三、同目录下新建Dockerfile ## 基础镜像&#xff0c;这里用的是openjdk:8 FROM openjdk:8## 将步骤一打包好的jar包 拷贝到镜像的 跟目录下[目录可以自定义…...

设计模式——创建型

1.单例模式 单例模式主要用于某个类有且只能用一个对象的场景&#xff0c;单例模式下不能外部实例化对象&#xff0c;由类内部自行私有化实例对象并提供一个可以获得该对象的方法。单例模式主要有饿汉模式&#xff08;安全&#xff0c;但在编译时就会自动创建对象&#xff0c;…...

实测好用降AI工具盘点 2026高性价比首选

前言 刚完成毕业答辩的过来人真心建议&#xff0c;别再跟论文AI检测死磕了&#xff01;我当初对着检测报告上飘红的高风险提示熬了好几个通宵&#xff0c;自己改了三版&#xff0c;导师扫了两眼就说“AI痕迹太重&#xff0c;回去重改”。那段时间我把市面上能找到的降AI工具试了…...

RuoYi-Vue-Plus项目实战:用WebSocket实现‘服务端通知’功能,我踩了这些坑

RuoYi-Vue-Plus实战&#xff1a;WebSocket服务端通知功能深度解析与避坑指南 在当今企业级应用开发中&#xff0c;实时通信已成为提升用户体验的关键要素。当产品经理提出"后台操作成功时前端实时弹窗提示"的需求时&#xff0c;作为技术负责人的你该如何选择技术方案…...

ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪?

ZYNQ启动全解析&#xff1a;从BootROM到你的App&#xff0c;SD卡与QSPI Flash烧录究竟差在哪&#xff1f; 当一块ZYNQ开发板静静躺在桌面上&#xff0c;按下电源键的瞬间&#xff0c;芯片内部究竟发生了什么&#xff1f;为什么有的工程师选择SD卡启动&#xff0c;而另一些则坚…...

深入解析Ollama-for-amd:AMD GPU本地大模型部署实战指南

深入解析Ollama-for-amd&#xff1a;AMD GPU本地大模型部署实战指南 【免费下载链接】ollama-for-amd Get up and running with Llama 3, Mistral, Gemma, and other large language models.by adding more amd gpu support. 项目地址: https://gitcode.com/gh_mirrors/ol/ol…...

[SSD]SSD主控

SSD系统架构SSD系统由一块CPU主控&#xff0c;可以是ARM或者RISC-v&#xff1b;整个主控芯片分为三个部分&#xff0c;分别是主机接口控制器&#xff0c;缓存控制器和闪存控制器&#xff0c;它可以分为前端和后端&#xff0c;前端就是主机接口控制器和主机之间的通信&#xff0…...

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计

化学合成革命&#xff1a;5分钟用AI完成复杂分子逆向合成路线设计 【免费下载链接】aizynthfinder A tool for retrosynthetic planning 项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder 你是否曾为设计一个复杂分子的合成路线而彻夜难眠&#xff1f;在传统…...

Rust 核心理论: 高并发与异步(三)

写在前面 Rust 凭借其独特的所有权机制和借用检查器&#xff0c;在不依赖垃圾回收的前提下&#xff0c;实现了内存安全与线程安全的编译期保证。 然而&#xff0c;对于许多从 C/C、Java、Python 等背景转入 Rust 的开发者而言&#xff0c;所有权、生命周期、借用规则、内部可变…...

三步解锁:开源AI编程工具的免费共享方案

三步解锁&#xff1a;开源AI编程工具的免费共享方案 【免费下载链接】cursor-vip cursor IDE enjoy VIP 项目地址: https://gitcode.com/gh_mirrors/cu/cursor-vip 在当今AI编程工具费用日益高涨的背景下&#xff0c;cursor-vip项目为全球开发者提供了一个创新的解决方案…...

硬件选型干货|钡特电源DQ1-15D1709S与金升阳QA01-17属工业标准模块电源,避坑指南

在工业电子硬件研发中&#xff0c;工业DC-DC模块是板级隔离供电的核心器件&#xff0c;其标准化封装、性能稳定性及国产化水平&#xff0c;直接影响研发效率、系统可靠性与供应链安全。钡特电源DQ1-15D1709S与金升阳QA01-17作为国产直流电源模块领域的代表性型号&#xff0c;均…...

G-Helper完整指南:如何用10MB替代华硕Armoury Crate实现笔记本极致优化

G-Helper完整指南&#xff1a;如何用10MB替代华硕Armoury Crate实现笔记本极致优化 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivob…...