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

【设计模式】【创建型5-5】【原型模式】

文章目录

  • 原型模式
    • 代码示例

原型模式

代码使用:spring框架里 bean的作用域
用途,以原型为模板,源源不断的创建(克隆 clone)对象。当直接创建对象的代价比较大时,则采用这种模式。

代码示例

public class Human implements Cloneable{private int age;private String name;private int sex;public Human(int age, String name, int sex) {this.age = age;this.name = name;this.sex = sex;}@Overrideprotected Human clone() {Human human = null;try {human = (Human) super.clone();} catch (CloneNotSupportedException e) {System.out.println(e);}return human;}
}class PrototypeMap {Map<String, Human> prototypeMap = new HashMap<>();public PrototypeMap() {// 初始化this.prototypeMap.put("Human", new Human(100, "666", 1));}public Object add(String k, Human v) {this.prototypeMap.put(k, v);return v;}public Human get(String k){Human o = this.prototypeMap.get(k);return o== null? o:o.clone();}
}
// 验证 原型模式 每次都返回出对象的克隆 且不同 虽然是浅克隆(深克隆 可以使用输入输出流 序列化反序列化)public static void main(String[] args) {PrototypeMap prototypeMap = new PrototypeMap();Human human1 = prototypeMap.get("Human");Human human2 = prototypeMap.get("Human");System.out.println(human1);System.out.println(System.identityHashCode(human1));System.out.println(human2);System.out.println(System.identityHashCode(human2));}
/*
Human{age=100, name='666', sex=1}
285377351
Human{age=100, name='666', sex=1}
344560770 */

相关文章:

【设计模式】【创建型5-5】【原型模式】

文章目录 原型模式代码示例 原型模式 代码使用&#xff1a;spring框架里 bean的作用域 用途&#xff0c;以原型为模板&#xff0c;源源不断的创建&#xff08;克隆 clone&#xff09;对象。当直接创建对象的代价比较大时&#xff0c;则采用这种模式。 代码示例 public class…...

原子变量原理剖析

一、原子操作 原子操作保证指令以原子的方式执行&#xff0c;执行过程不被打断。先看一个实例&#xff0c;如下所示&#xff0c;如果thread_func_a和thread_func_b同时运行&#xff0c;执行完成后&#xff0c;i的值是多少&#xff1f; // test.c static int i 0;void thread…...

WebSocket走私实践(附赠LiveGBS监控系统未授权管理员密码重置)

WebSocket走私实践&#xff08;附赠LiveGBS监控系统未授权管理员密码重置&#xff09; 对此&#xff0c;我特别感谢TryHackMe和HackTheBox academy&#xff0c;永远相信和追随英国TryHackMe所教导的网络安全知识,并保持学习 WebSocket走私相关的知识在这里 前段时间学习过htt…...

CentOS 7 和 CentOS Stream 8 的主要区别

更新频率&#xff1a; CentOS 7&#xff1a;传统的稳定版本&#xff0c;主要用于生产环境&#xff0c;更新频率较低&#xff0c;主要包含安全补丁和重要修复。CentOS Stream 8&#xff1a;滚动发布版本&#xff0c;更新更频繁&#xff0c;包含最新的特性和改进。它处于 Fedora …...

基于go1.19的站点模板爬虫

一、go1.19 go1.19是Go语言的一个版本,于2021年8月发布。它带来了许多新的功能和改进,包括但不限于以下方面: 并发性能改进:go1.19引入了新的调度器算法,称为“网状调度器(netlink scheduler)”,它可以更好地处理大量并发任务,在某些情况下提高了系统的并发能力。 垃…...

(单机版)神魔大陆|v0.51.0|冰火荣耀

前言 今天给大家带来一款单机游戏的架设&#xff1a;神魔大陆v0.51.0:冰火荣耀。 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; (单机版)神魔大陆 下面我将详细的教程交给大家&#xff0c;请耐心阅…...

k8s自动补全工具和UI管理界面

分享两个有利于K8S的工具 目录 分享两个有利于K8S的工具 一、部署Dashboard&#xff08;主节点&#xff09; 介绍 1.1、查看集群状态 1.2、下载yaml文件并运行Dashboard 1.3、部署服务 1.4、创建访问账户、获取token&#xff08;令牌&#xff09; 1.5、浏览器访问Dash…...

内网渗透:内网基础信息收集

Windows&#xff1a; whoami:查看当前当前主机名和登录用户名 whoami /user : 打印当前主机名和输出SID ​ SID的最后一个数字&#xff1a; 1000&#xff1a;普通管理员 500&#xff1a;administrator 501&#xff1a;Guest 516&#xff1a;域控 544&#xff1a;域管理员 net…...

cos符号链提示是什么?TOT呢?

**关于cos符号链提示&#xff08;Chain-of-Symbol Prompting, CoS&#xff09;**&#xff1a; Chain-of-Symbol Prompting&#xff08;CoS&#xff09;是用于大型语言模型&#xff08;LLMs&#xff09;的一种新的提示方法。它旨在解决LLMs在空间场景中的理解和规划问题&#xf…...

docker-compose部署Flink及Dinky

docker-compose部署Flink及Dinky 服务器环境&#xff1a;centos7 1. 配置hosts vim /etc/hostsx.x.x.x jobmanager x.x.x.x taskmanager x.x.x.x dinky-mysql2. 文件目录结构 . ├── conf │ ├── JobManager │ │ ├── flink-conf.yaml │ │ ├── log…...

数字时代的文化革命:Facebook的社会影响

随着数字技术的飞速发展和互联网的普及&#xff0c;社交网络如今已成为人们日常生活中不可或缺的一部分。在众多社交平台中&#xff0c;Facebook作为最大的社交网络之一&#xff0c;不仅连接了全球数十亿用户&#xff0c;更深刻影响了人们的社会互动方式、文化认同和信息传播模…...

66.前端接口调用返回400的错误

错误代码400通常表示由于无效的请求导致服务器无法处理请求。这可能是由于以下原因之一&#xff1a; 1.语法错误&#xff1a;客户端发送的请求可能存在语法错误&#xff0c;例如缺少必需的参数、格式不正确等。 2.未授权&#xff1a;如果API需要认证&#xff0c;而客户端没有提…...

Hadoop 安装与伪分布的搭建

目录 1 SSH免密登录 1.1 修改主机名称 1.2 修改hosts文件 1.3 创建hadoop用户 1.4 生成密钥对免密登录 2 搭建hadoop环境与jdk环境 2.1 将下载好的压缩包进行解压 2.2 编写hadoop环境变量脚本文件 2.3 修改hadoop配置文件&#xff0c;指定jdk路径 2.4 查看环境是否搭建完成 3 …...

网络安全:渗透测试思路.(面试)

网络安全&#xff1a;渗透测试思路.&#xff08;面试&#xff09; 渗透测试&#xff0c;也称为 "pen testing"&#xff0c;是一种模拟黑客攻击的网络安全实践&#xff0c;目的是评估计算机系统、网络或Web应用程序的安全性. 目录&#xff1a; 网络安全&#xff1a;…...

优化堆排序

优化堆排序 堆排序是一种基于比较的排序算法,它利用堆这种数据结构来进行排序。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。堆排序算法分为两个大的步骤:首先将待排序的序列构造成一个最大堆,此时,整个序…...

vue3使用一些组件的方法

iconpark...

OceanBase 4.2.1 离线安装

OceanBase 4.2.1 离线安装 4.2 版本的OceanBase支持一键安装&#xff0c;所以在线版本的安装简单了很多&#xff0c;但在无法连接网络的情况下安装就只能手动离线安装。 注&#xff1a;如下安装过程都是在同一台机器上面进行&#xff0c;也就是只有一个节点&#xff0c;多个节…...

ForkJoin

线程数超过CPU核心数是没有任何意义的【因为要使用CPU密集型运算】 Fork/Join&#xff1a;线程池的实现&#xff0c;体现是分治思想&#xff0c;适用于能够进行任务拆分的 CPU 密集型运算&#xff0c;用于并行计算 任务拆分&#xff1a;将一个大任务拆分为算法上相同的小任务…...

实验2 色彩模式转换

1. 实验目的 ①了解常用的色彩模式&#xff0c;理解色彩模式转换原理&#xff1b; ②掌握Photoshop中常用的颜色管理工具和色彩模式转换方法&#xff1b; ③掌握使用Matlab/PythonOpenCV编程实现色彩模式转换的方法。 2. 实验内容 ①使用Photoshop中的颜色管理工具&#xff…...

AES加密算法及AES-CMAC原理白话版系统解析

本文框架 前言1. AES加密理论1.1 不同AES算法区别1.2 加密过程介绍1.2.1 加密模式和填充方案选择1.2.2 密钥扩展1.2.3分组处理1.2.4多轮加密1.2.4.1字节替换1.2.4.2行移位1.2.4.3列混淆1.2.4.4轮密钥加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…...

为什么选全屋定制,不买成品柜

1&#xff09;为什么选全屋定制&#xff0c;不买成品柜&#xff1f;​ 成品柜尺寸固定&#xff0c;苏州很多户型飘窗、梁位、管道多&#xff0c;放进去丑、浪费空间&#xff01;我们定制严丝合缝&#xff0c;顶天立地&#xff0c;收纳多 30%&#xff0c;颜值统一&#xff0c;和…...

Qwen3.5-2B效果展示:儿童绘本图→识别角色/场景/情绪→生成故事续写+朗读脚本

Qwen3.5-2B效果展示&#xff1a;儿童绘本图→识别角色/场景/情绪→生成故事续写朗读脚本 1. 模型介绍 Qwen3.5-2B是通义千问团队推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这个模型特别适合在资源有限的设备上部…...

Wan2.2-I2V-A14B企业应用:法律文书解读AI动画视频生成系统

Wan2.2-I2V-A14B企业应用&#xff1a;法律文书解读AI动画视频生成系统 1. 系统概述与核心价值 法律行业每天需要处理大量文书材料&#xff0c;传统的人工解读和可视化呈现方式效率低下且成本高昂。Wan2.2-I2V-A14B法律文书解读AI动画视频生成系统正是为解决这一痛点而生。 这…...

避开深沟槽工艺的“坑”:从DLTS数据到TCAD仿真的硅光电二极管陷阱态优化实战

硅光电二极管陷阱态优化的工程实践&#xff1a;从DLTS表征到TCAD仿真 在半导体制造领域&#xff0c;深沟槽隔离&#xff08;DTI&#xff09;工艺虽然能有效解决器件间的串扰问题&#xff0c;但其引入的界面陷阱态却成为光电二极管性能提升的"隐形杀手"。工艺工程师们…...

如何通过炉石传说自动化工具实现游戏效率提升?

如何通过炉石传说自动化工具实现游戏效率提升&#xff1f; 【免费下载链接】Hearthstone-Script Hearthstone script&#xff08;炉石传说脚本&#xff09;&#xff08;2024.01.25停更至国服回归&#xff09; 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Scrip…...

降低AI检测率哪个工具好?10款免费工具2026亲测,亲测有用

很多同学在写论文时都会遇到同一个难题&#xff1a;用AI辅助写完的内容&#xff0c;一查AIGC率高到离谱&#xff0c;被导师打回要求整改。后台最近也收到不少私信问&#xff1a;怎么才能有效降低AI检测率&#xff1f;有没有靠谱的免费降AI率工具推荐&#xff1f; 我自己当初也踩…...

从游戏引擎到自动驾驶:聊聊八叉树(Octree)这个‘空间管理大师’的跨界打工史

从游戏引擎到自动驾驶&#xff1a;八叉树的跨界进化论 1980年代的一个深夜&#xff0c;约翰霍普金斯大学实验室里&#xff0c;一位计算机图形学研究员正对着闪烁的CRT显示器皱眉。他需要找到一种方法&#xff0c;让当时性能有限的计算机也能流畅渲染三维场景。这个看似普通的需…...

忍者像素绘卷效果实测:同一Prompt下不同步数对像素锐度影响对比分析

忍者像素绘卷效果实测&#xff1a;同一Prompt下不同步数对像素锐度影响对比分析 1. 测试背景与目的 忍者像素绘卷作为一款基于Z-Image-Turbo深度优化的图像生成工具&#xff0c;其独特的16-Bit复古游戏美学风格吸引了大量创作者。在实际使用中&#xff0c;我们发现"描绘…...

Nginx + FFmpeg 核心配置

Nginx FFmpeg 核心配置&#xff08;2 种最实用方案&#xff09;我给你最简、能直接用的配置&#xff0c;不用你自己改半天&#xff0c;分两种场景&#xff1a;Nginx 接收 FFmpeg 推流&#xff08;直播&#xff09;Nginx 调用 FFmpeg 自动转码&#xff08;高清 / 标清&#xff…...

3步掌握KillWxapkg:微信小程序逆向工程全流程解析

3步掌握KillWxapkg&#xff1a;微信小程序逆向工程全流程解析 【免费下载链接】KillWxapkg 自动化反编译微信小程序&#xff0c;小程序安全评估工具&#xff0c;发现小程序安全问题&#xff0c;自动解密&#xff0c;解包&#xff0c;可还原工程目录&#xff0c;支持Hook&#x…...