设计模式入门:最简单的单例模式

单例设计模式

什么是设计模式

设计模式是针对软件设计中反复出现的问题 总结出的一套可复用、可扩展、易维护的通用解决方案

单例模式

假设A类是个单例类

那就要知道 通过A拿对象 拿到的永远都是同一个对象

单例的实现方式很多 比如饿汉单例模式 懒汉单例模式等等

饿汉单例

一定要把构造器私有化

要获取的单例对象 随着单例类SingleInstance类加载的时候 就已经完成实例化


具体实现:

执行到Hungry.instance 用类名去拿静态资源的时候
肯定已经完成Hungry的类加载 与此同时 instance对象就同步地实例化了

且静态变量只加载一次 所以每次.instance拿到的都是同一个对象

懒汉单例

在真正需要单例对象的时候 才去创建一个对象(延迟加载对象)

懒汉单例最好把静态的单例对象也私有化 防止可能用类名.的方式直接拿到一个null


具体实现:

s1想获取对象的时候 判断是null 则进去new一个

而到了s2 s3的时候 不进去 直接返回之前new的对象

所以永远只会有同一个对象(输出结果表明 构造器也只被调用了一次)

一种错误写法:

每次调用此方法 new出来的都是新的对象

所以需要if判断

相关推荐
Nontee5 小时前
MySQL 插入冲突了怎么办?两种处理方式入门笔记
数据库·笔记·mysql
浔溺5 小时前
al+大数据每日学习笔记26
笔记·学习
老当益壮梁奶奶6 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习
sel_97 小时前
【多轮对话论文导读(三)】多轮对话与Agent论文阅读笔记:用户模拟、轨迹生成与长期记忆
论文阅读·人工智能·笔记·深度学习·算法·机器学习
zzm6287 小时前
《SIGIR 2018论文精读|深度学习点击序列模型:对搜索页面点击行为进行序列建模》
笔记·深度学习·推荐系统·论文精读
常驻客栈8 小时前
B-深入理解计算机系统第3版之第8章:异常控制流
笔记·学习·常驻客栈·深入理解计算机系统·学习笔记‘’
Seraphina368 小时前
记一次实验:利用路径分隔符进行网页缓存欺骗
经验分享·笔记·安全·网络安全·缓存
AOwhisky8 小时前
Linux 网络服务架设学习笔记(第五期)——Web 服务(上篇):Apache HTTP Server——从静态到动态
linux·运维·服务器·笔记·学习·云计算·apache
摇滚侠10 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 1
spring boot·笔记·后端
Michael_lcf11 小时前
Agent设计模式:思考-行动-观察循环的本质与局限
设计模式·agent设计模式·agent设计模式的本质