算法 模式 代码 方式

创建型-原型模式

定义 使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式 百科。 通俗的说就是原型模式是一种创建型设计模式,指定某个对象(通过某种方式)得到一个新的对象,在内存中拥有新的地址,得到的对象与原对象是是相互独立的,即得到跟原对象一样的对象 当我们需要两个一模一 ......
原型 模式

创建型:工厂模式-工厂方法、抽象工厂

简单工厂问题 简单工厂中我们通过参数来返回不同的产品对象,如果管理的对象过多,这个工厂函数会比较庞大,且当我们需要增加一个新的产品时,需要修改这个工厂方法,违反开闭原则(对拓展开放,对修改关闭)。 为了解决简单工厂模式的问题,出现了工厂方法模式。 解决简单工厂思路 简单工厂类图关系类似如下: 如上图 ......
工厂 模式 方法

JAVA重试机制多种方式深入浅出

重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。 重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。 为了方便说明,先假设我们想要进行重试的方法如下: @Slf4j @Component public class HelloServi ......
深入浅出 多种 机制 方式 JAVA

创建型:工厂模式-简单工厂

定义 之所以叫简单工厂是因为真的非常简单,只要一个工厂(函数)就可以了,如果把被创建的对象称为产品,把创建产品的对象或者方法称为工厂,那么只需要传入不同的参数,就可以返回不同的产品(实例),这种模式就叫简单工厂模式。 简单工厂-餐馆点菜 工厂模式其实就是将创建对象的过程单独封装在一个工厂中。 它很像 ......
工厂 模式

设计模式与前端工程师

前端要不要学习设计模式 始终认为每个行业都有自己的特点,各自的专业性。一个开发工程师如果不知道电脑是哪些基本硬件组成,那么我们大概率都会认为这个人非常不专业。那么前端要不要学设计模式呢?设计模式跟前端有多大关系呢? 前端工程师首先是一个工程师,既然是一个软件工程师,那么类似设计模式、数据结构、网络相 ......
设计模式 前端 工程师 模式 工程

基于内容的推荐系统算法

基于内容的推荐算法是一种常用的推荐算法,它主要通过分析物品的特征(如文本、图片、视频等)来实现推荐。其核心思想是利用物品属性的相似性,将已经喜欢的物品的特征作为输入,推荐与该物品相似度高的其他物品。 基于内容的推荐算法仅考虑了单个用户对物品的偏好,而未考虑多个用户之间的交互和影响。此外,该算法在特征 ......
算法 内容 系统

zabbix被动模式和主动模式的区别

主动模式、被动模式都是以zabbix agent的角度来说的。以下从几个方面来深入解释2个模式的区别。 主动模式active: 主动模式下,zabbix agnet定时向zabbix server发送自身监控数据 端口:zabbix agent主动发起进程,访问zabbix server 的1005 ......
模式 zabbix

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,来实现二者的解耦。参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。 ......
设计模式 语言 模式 Python Java

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ......
设计模式 语言 模式 Python Java

代码随想录-day3

字符串 字符串的题目,通常涉及到对字符串进行各种操作,由于JAVA提供了非常多的库函数,所以在很多题目中我们可以使用库函数快速使这道题解决,但是这与我们训练算法和编码能力相违背。 所以我们在本章专题里面,主要是使用我们自己构造的函数对字符串进行,操作加深我们对字符串操作的理解,当我们训练熟悉后可以使 ......
随想录 随想 代码 day3 day

【基数排序算法详解】Java/Go/Python/JS/C不同语言实现

说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation ......
基数 算法 语言 Python Java

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现 说明 选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待排序序列中寻找最小( ......
算法 语言 Python Java Go

【RSocket】使用 RSocket(二)——四种通信模式实践

Source Code: https://github.com/joexu01/rsocket-demo 0. 四种通信模式 让我们来简单复习一下 RSocket 的四种通信模式: 即发即忘 - FireAndForget:立即发送一个请求,无需为这个请求发送响应报文。适用于监控埋点,日志上报等,这 ......
RSocket 模式

代码随想录-day1

链表 今天主要是把链表专题刷完了,链表专题的题目不是很难,基本都是考察对链表的操作的理解。 在处理链表问题的时候,我们通常会引入一个哨兵节点(dummy),dummy节点指向原链表的头结点。这样,当我们对头结点进行操作的时候就可以直接使用dummy节点,不用进行特判。 在对链表进行操作的时候 whi ......
随想录 随想 代码 day1 day

代码随想录-day2

哈希表 基础知识 哈希表和链表都是属于基础数据结构的一种,都是必须掌握牢靠的知识。 哈希表是根据关键码的值而直接进行访问的数据结构。 简单来说就是使用数据得到的哈希值来作为哈希表的key用于获取数据。 用于求哈希值的的函数被我们称为哈希函数,通过哈希函数我们可以把数据映射到我们的哈希表上。 显然,在 ......
随想录 随想 代码 day2 day

算法学习笔记(18): 平衡树(一)

平衡树 建议在清楚二叉搜索树的所有操作之后食用本文。本文将略过部分基础知识 本文主要会讲到4中较常用的平衡树: Treap FHQ-Treap(无旋Treap) Splay WBLT 其实WBLT不怎么常用,但是我个人最喜欢用 我将会在另一篇文章中讲述其他的平衡树,如AVL,红黑树,替罪羊树等。 可 ......
算法 笔记 18

实践,制作一个高扩展、可视化低代码前端,详实、完整

RxEditor是一款开源企业级可视化低代码前端,目标是可以编辑所有 HTML 基础的组件。比如支持 React、VUE、小程序等,目前仅实现了 React 版。 RxEditor运行快照: 项目地址:https://github.com/rxdrag/rxeditor 演示地址( Vercel 部 ......
前端 代码

简易的工厂设计模式

工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。在工厂模式中,我们定义一个接口或抽象类,该接口或抽象类用于创建对象,但让子类决定要实例化的类。工厂方法模式使类的实例化延迟到其子类。 下面是一个完整的C#实现案例: 首先,我们定义一个接口,用于创建对象: p ......
设计模式 简易 工厂 模式

详细讲解23种设计模式

工厂方法模式(Factory Method Pattern) 工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法把对象的实例化推迟到子类。 代码示例: csharpCopy codepublic interface IProduct { vo ......
设计模式 模式

“无所不能的中介”——代理模式

1.简介 定义:将某个对象中围绕某个主题的一些列行为委托给一个代理对象去执行,代理对象将控制和管理对原有对象的访问,调用者想要访问目标对象,必须通过代理对象去间接访问,代理对象在调用方和目标对象之间可以起到”中介“的作用。代理一词本身,其实就可以很好发现的关键点,如果暂时无法理解晦涩的概念,那么在阅 ......
无所不能 中介 模式

Python实战项目6-后端多方式登录接口/手机登录接口

为开源项目共享代码 步骤: 1先fork开源项目 2clone下来,修改代码,进行提交 3提交pr,等作者同意 Pycharm 使用Git 右键文件会列出Git命令 登录注册功能分析 多方式登录接口:用户名/手机号/邮箱 + 密码都可以登陆 发送手机验证码接口 (借助于第三方短信平台) 短信登录接口 ......
多方式 接口 实战 项目 Python

AI来实现代码转换!Python转Java,Java转Go不在话下?

今天看到个有趣的网站,给大家分享一下。 该网站的功能很神奇,可以实现编程语言的转化。感觉在一些场景之下还是有点作用的,比如你原来跟我一样是做Java的,因为工作需要突然转Go。这个时候用你Java的经验 + 这个工具,或许可以起到一定的帮助作用。 工具的使用也很简单,只需要在左侧黏贴你想转换的原始代 ......
不在话下 Java 代码 Python

自己动手从零写桌面操作系统GrapeOS系列教程——9.实模式介绍

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在GrapeOS中会用到2种CPU模式,一种是实模式(real mode),另一种是保护模式(protected mode)。在本教程中,保护模式特指32位保护模式。这两种模式最主要的不同点是对内存地址的访问方式不同,此外还有其它的不同点。这两 ......
桌面 GrapeOS 模式 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——14.屏幕显示原理与文本模式

学习操作系统原理最好的方法是自己写一个简单的操作系统。 一、屏幕显示原理 电脑显示器屏幕是由很多很小的像素组成的。每个像素就像是一个小灯泡,在屏幕上一排一排的整齐排列着。只要能控制每个像素的颜色就能显示出各种各样的图形。如果近距离观察过会场或室外的大屏幕会有更直观的感受,这种大屏幕上每个像素就是一个 ......
文本 屏幕 原理 桌面 GrapeOS

工厂模式进阶用法,如何动态选择对象?

前言 工厂设计模式可能是最常用的设计模式之一,我想大家在自己的项目中都用到过。可能你会不屑一顾,但这篇文章不仅仅是关于工厂模式的基本知识,更是讨论如何在运行时动态选择不同的方法进行执行,你们可以看看是不是和你们项目中用的一样? 欢迎关注个人公众号【JAVA旭阳】交流沟通 小菜鸟的问题 直接上例子说明 ......
对象 工厂 模式 动态

明解STM32—GPIO理论基础知识篇之八种工作模式

一、引言 在之前围绕STM32的GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPIO口内部基本结构图,图2为GPIO的基本结构中各个模块部分的概述。 阅读GPIO基本结构的内容能够对GPIO的工作模式有更深的了解。正是由于GPIO的结构中包含了多样性的电路和模块,因此进行合理的配置组合 ......
基础知识 理论 模式 基础 知识

java代码审计-文件操作

0x01 任意文件读取 @GetMapping("/path_traversal/vul") public String getImage(String filepath) throws IOException { return getImgBase64(filepath); } 这里的路由对应的方 ......
代码 文件 java

java代码审计-SSRF

0x00 前言 SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定 URL 地址获取网页文本内容,加载指定地址的图片,下载等等。这里主要介绍java中URLConnection()和openStream()两个方法产生SSRF的原理和修复 ......
代码 java SSRF

java代码审计-SpEL表达式注入

0x01 前言 Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言、用于在运行时查询和操作对象图;语法上类似于Unified EL,但提供了更多的特性,特别是方法调用和基本字符串模板函数。SpEL 的诞生是为了给 Spring 社区提供一种能够与Spri ......
表达式 代码 java SpEL

自己做一个ChatGPT微信小程序(代码开源)

微信扫一扫 或者 微信搜索 superBot 即可找到 离职在家 闲来无事看最近ChatGPT很火 花了一天时间 用Uniapp写了一个小程序端的ChatGPT,实在是看不惯~ 一大堆利用ChatGPT收费的应用(小程序) 整个开源的玩玩 另外主要是自己本身是后端开发人员~ 刚好用uniapp实践一 ......
ChatGPT 代码 程序