设计模式--单例-dl-sjms

BES (恒玄)HFP通话笔记 1.audio_developer 调试:SDK 需要打开某个算法,需要原厂打开对应宏定义编译出新的SDK,只要涉及到lib库里的功能都需要原厂手动修改编译。开发商和原厂FAE做起来都会比较累。如果没有原厂支持根本没法做,很少文档,SDK也很多问题,没法开箱即用如果要支持audio_developer上位机调试,还需改代码,如果对整个原理不清楚就没法做,没文档只能啃代码调试工具设计的也有待加强,串口通讯调试对耳机这类产品非常麻烦,本来板子就不大,还要焊接一堆线,调试还要拖着串口线。 阅读详情

装饰器模式

动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案

代理模式控制对象的访问

装饰者模式为对象增加行为,而代理模式是控制对象的访问

装饰者模式为对象增加行为,而代理模式是控制对象的访问。
适配器模式会改变对象适配的接口,而代理模式则实现相同的接口。

宗旨

如果我们在程序启动后,一定会加载到类,那么用饿汉模式实现的单例 简单又实用;如果我们是写一些工具类,则优先考虑使用懒汉模式,因为很多项目可能会引用到 jar 包,但未必会使用到这个工具类,懒汉模式实现的单例可以避免提前被加载到内存中,占用系统资源。

反射可以使用私有构造函数、
反射、clone 会破坏传统的方式

link

饿汉

// 饿汉模式
public final class Singleton {
    private static Singleton instance=new Singleton();// 自行创建实例
    private Singleton(){}// 构造函数
    public static Singleton getInstance(){// 通过该函数向整个系统提供实例
        return instance;
    }
}

懒汉 — 静态内部类实现

// 懒汉模式 内部类实现
public final class Singleton {
	public List<String> list = null;// list 属性
 
	private Singleton() {// 构造函数
		list = new ArrayList<String>();
	}
 
	// 内部类实现
	private static class InnerSingleton {
		private static Singleton instance=new Singleton();// 自行创建实例
	}
 
	public static final Singleton getInstance() {
		return InnerSingleton.instance;// 返回内部类中的静态变量
	}
}

枚举

Java虚拟机会保证枚举类型不能被反射 并且构造函数只被执行一次;

package wu.wl.signgle;

public class Singleton {
    private Singleton(){
    }
    public static enum SingletonEnum {

        SINGLETON;
        private Singleton instance = null;

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

    public static void main(String[] args) {
        Singleton one = SingletonEnum.SINGLETON.getInstance();
        Singleton two = SingletonEnum.SINGLETON.getInstance();
        System.out.println(one == two);
    }
}
5分钟搞懂双目相机标定:从棋盘格到3D点云的完整流程(附Python代码) 本文详细介绍了双目相机标定的完整流程,从棋盘格准备到3D点云生成,涵盖单目标定、双目标定、立体校正、视差计算等关键步骤。通过Python代码示例,帮助读者快速掌握双目立体视觉技术,实现高精度的3D重建。特别适合机器人导航、工业检测等应用场景。 阅读详情

相关推荐

手把手教你用CV5200模块搭建无人机高清图传系统(含实测数据)

本文提供了一份基于CV5200模块搭建远距离无人机高清图传系统的完整实战指南。文章详细解析了系统架构、硬件连接、软件配置与优化,并分享了实地飞行测试数据。核心在于利用CV5200的LR-WiFi私有协议,在视距下实现数公里级的稳定高清视频传输,为DIY爱好者和行业应用提供了高性价比的解决方案。

day7的博客 716

从零到一:手把手教你用SpringBoot+Vue搭建图书商城(附完整源码和部署避坑指南)

本文详细介绍了如何使用SpringBoot和Vue从零开始搭建一个完整的图书商城系统,涵盖环境配置、数据库设计、前后端交互、支付集成等关键环节,并提供完整源码和部署避坑指南。特别针对JWT认证、购物车状态管理、支付宝支付等常见问题给出实战解决方案,适合全栈开发者快速掌握在线商城开发技巧。

weixin_30781433的博客 438

保姆级教程 | MS构建三层石墨后转成LAMMPS的data文件

喜欢的话记得一键三连~

baguette的博客 2948

单例模式

单例模式代码本身classSingleton{//将声明对象的工作发在全局变量中privatestaticSingletoninstance;//这个对象是为了在锁住这个类的时候的判断privatestaticObjectobject=newObject();//私有化构造方法,只有本身可以创建本身pr...

dlhkuem0453的博客 137

告别理论!用AXI-Stream实战摄像头数据流采集(附Verilog关键代码片段)

本文详细解析了如何通过AXI-Stream接口实现工业级可靠性的摄像头数据流采集系统,重点介绍了Verilog实战代码、AXI-Stream握手机制及数据反压处理方案。通过三级缓冲架构和带宽优化,有效解决了OV5640等摄像头在高速场景下的帧丢失问题,为FPGA图像处理项目提供了实用解决方案。

weixin_42563415的博客 157

别再用UE5默认材质:用Substance Painter一招提升写实感

今天,我就把这套从模型准备到引擎最终呈现的全流程技巧毫无保留地分享出来,这套方法不仅能让你的作品细节炸裂,更能让你理解次世代PBR(Physically Based Rendering)材质的底层逻辑。

海外旅居设计师,15年设计经验。 1324

【java】-Netty--ByteBufUtil

将报文直接写文16进制 hexDump():能够将参数ByteBuf的内容转换为十六进制的字符串 byte[] data = msg.getData(); // wl 解析出报文中的时间 yyMM 808_2019_time String s = ByteBufUtil.hexDump(data); ...

wlwork66的博客 4611

Quantum Espresso Hands-On实战训练(四)——PDOS计算与轨道分析

本文详细介绍了Quantum Espresso中PDOS计算与轨道分析的实战方法,重点解析了PDOS在材料电子结构研究中的核心价值,包括原子级分辨率、轨道级解析和自旋极化分析。通过具体案例和操作步骤,帮助读者掌握从输入文件准备到结果解读的全流程,并提供了高级分析技巧和疑难问题解决方案。

weixin_29211309的博客 503

springboot--拦截器和接口-ResponseBodyAdvice--WebMvcConfigurer-filter

目标 1 你可以在自己的日志中看到自己接口的出参和入参,同时你不用在每个接口中写打印的逻辑,直接交给拦截器完成。 2 你可以任意包装你的出参,比如加上消耗的时间,添加一个唯一的uuid等等,同时这些东西都是由拦截器提供的功能。这些功能也可以做成配置化,比如你那些接口不需要这样的包装,在yml中配置一下,就可以了。 看图 接口模样 每次接口请求都会输出param,路径 消耗的时间 ...

wlwork66的博客 2504

深度学习笔记——Transformer

本文详细介绍面试过程中可能遇到的Transformer知识点。

haopinglianlian的博客 1703

训练YOLOv11 | Pytorch和Pycharm的安装教程适用W11系统(附详细的系统变量添加过程)

根据你之前下载的版本选择对应的选项即可,然后复制底下的绿色代码到Anaconda的命令行输入即可(这里要在你安装的python环境里进行安装,例如我的环境名字是PyTorch,那么就是activate PyTorch里进行安装)然后同之前一样会加载一会,然后会询问我们是否下载配件,我们输入Y等待即可(下载过程中我们要确保网络通常如果有波动可能会下载失败)。类似于我的电脑是Windows11选择上面红框内的选项即可点击后即下载,(注意这里下载的是zip文件)下载完成后复制下面几个文件。

Snu77的博客 1万+

springboot--mybatis枚举自动转换实现

需求 数据传递过来的值是枚举的name;存储到数据库为code;查询出来,code化为name,给出去。 看图–查询 1数据 2枚举 3接口 3结果 看图–插入 数据库 代码实现 public class AutoEnumTypeHandler <E extends Enum<E>> extends BaseTypeHandler<E> { private BaseTypeHandler typeHandler; public Aut

wlwork66的博客 2060

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

jks212454的博客 5571

【java】-Netty-基础-jc-SimpleChannelInboundHandler

channel接口 channel接口的作用是连接buffer和Selector,可以认为channel就是socket,每个channel都会分配一个ChannelPipeLine和channelconfig。同时,每个channelconfig包含了channel的所有配置设置,且支持热更新。 channelpipeline,可以认为是channel通向Selector的桥梁或者管道。 cha...

wlwork66的博客 1952

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java接口的参数校验-youli

java接口拿到参数会进行解密或者参数的校验。我一般使用JavaEE的校验工具包: 思想: 直接校验所有的参数,然后抛出异常,你的异常的抛出在接口处进行抓取和返回: 举例: @PostMapping("/v1.0/cardType") public CommonResult cardTypexx(@RequestParam Map entity) { JSONOb...

wlwork66的博客 1893

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

fastjson

所有的框架其实都有坑,关键是你是否理解了为什么有这些坑,然后建立自己的使用习惯,避免入坑。----送给天下所有java开发者加粗样式 规矩:加粗样式 001 :需要进行序列化的实体不要参入其他方法,只是写自己的各种属性。 002:属性名称遵循驼峰命名,正例:fatherName 反例:FATHERNAME 003:使用lombok的@Data进行标注,不用自动生成的get set方法 坑1:加...

wlwork66的博客 1409

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

编程-常识cs

Unicode字符集是用来支持世界上的所有的语言的,ASCII字符集只是它的一个子集,确切的说,它是Unicode字符集的前255个字符。Unicode字符集的字符常常用十六进制表示,例如‘\u0000’、‘\u0028’、‘\uffff’等。(universe-charactername)\u后面必须跟4个十六进制数字(不足四位前面用零补齐),表示Unicode中在0至0xFFFF之内的码位(但不能表示0xD800到0xDFFF之内的码点,Unicode标准规定这个范围内的码位保留,不表示字符);...

wlwork66的博客 927

mybatis--注解-分页-批量-batch

@Mapper 添加了@Mapper注解之后这个接口在编译时会生成相应的实现类 @Param 于多个参数来说,每个参数之前都要加上@Param注解 //UserDAO import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import entity.User; /** * 添加了@Mappe

wlwork66的博客 793

【Netty】--进行线程调度--再也不要使用qurze

事件/任务的执行顺序 事件和任务是以先进先出(FIFO)的顺序执行的。这样可以通过保证字 节内容总是按正确的顺序被处理,消除潜在的数据损坏的可能性。 任务的调度 偶尔,你将需要调度一个任务以便稍后(延迟)执行或者周期性地执行。例如,你可能想要注册一个在客户端已经连接了5 分钟之后触发的任务。一个常见的用例是,发送心跳消息到远程节点,以检查连接是否仍然还活着。如果没有响应,你便知道可以关闭该Cha...

wlwork66的博客 707

vim-基础-技巧

光标的移动 需求 方式 备注 到文件末尾 大写的字母G命令跳到文件尾 到文件的start gg gg 移动到行首 o vim一共有4个模式: 正常模式 (Normal-mode) —esc 或者双击esc进入–作用: 跳来跳去,跳动的范围从小到大是字符单词、行、句子、段落和屏幕 插入模式 (Insert-mode)--------i 进入 命令模式 (Command-mode)------q! 强制退出 --冒号

wlwork66的博客 615

springmvc-调用链路

根本链路 参考: click 会为该请求创建一个过滤器链,过滤器中的过滤器都执行完之后,才会调用Servlet的service方法,如果我们使用SpringMVC的话,最终调用的是DispatcherServlet的doDispatch方法,在该方法会根据当前请求路径、请求头、请求参数等信息确定执行处理器handler(也就是我们的Controller的类中配置了@RequestMapping注解的方法),此时返回的handler是HandlerExecutionChain处理器执行链,该执行链中含适用的拦

wlwork66的博客 600

[工具]--lambuda--List排序-List中内容相加

各种情况总结: one List降序 public static void main(String[] args) { List<Integer> list = Arrays.asList(3, 1, 5, 100); List<Integer> newList = list.stream().sorted(Comparator.co...

wlwork66的博客 494

mac-brew-order-ls-ll

brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" mac 下使用ll命令 vim ~/.bash_profile // or open ~/.bash_profile alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' 保存后: source ~/.bash_profile

wlwork66的博客 459

redis-RedisTemplate

引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 说明 使用RedisTemplate来回转化传递的是字节数组,所以需要一个序列化的过程;当然你不用每次手动去

wlwork66的博客 441

redisson

redisson 命令 1 redisson

wlwork66的博客 417

怎样设计一个好架构:八个评价维度、四层思考深度,以及 23 种设计模式各自解决什么问题

架构要解决的是变化、理解、故障和协作的成本。本文从耦合、可迁移、可适配、复杂度等八个维度讲怎么评价架构,讲维度之间怎么取舍、架构思考可以分几层,再用可编译的 C 代码过一遍 23 种设计模式。

weixin_52400878的博客 307
上一篇: log4j2
下一篇: 设计模式--原型模式-sj
吧啦蹦吧
博客等级 码龄10年 52粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值