Java 学习:设计模式 - 单例模式
2021/9/16 22:04:52
本文主要是介绍Java 学习:设计模式 - 单例模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单例模式
单例:单个实例
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,
对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法单例模式有两种:a). 饿汉式单例, b). 懒汉式单例
步骤:
1).将构造器私有化,防止外部直接 new
2).在类的内部创建对象
3). 向外提供一个静态的公共方法。getInstance
示例:饿汉式单例:
public class SingleObject{ //私有构造器 private SingleObject(){ } //内部实例对象 private static SingleObject singleObject = new SingleObject(); //向外部提供静态公共方法,返回对象 public static SingleObject getInstance(){ return singleObject; } }
示例:懒汉式单例:
public class SingleObject{ //私有构造器 private SingleObject(){ } private static SingleObject singleObject; //向外部提供静态公共方法,返回对象 public static SingleObject getInstance(){ //判断对象是否存在,不存在就创建,最终返回对象 if(singleObject == null){ singleObject = new SingleObject(); } return singleObject; } }
饿汉式单例 和 懒汉式单例对比:
-
二者主要区别在于创建对象的时机不同:饿汉式是在类加载就创建了对象实例;而懒汉式是在第一次使用时才创建。
-
饿汉式不存在线程安全问题,懒汉式存在线程安全问题。
-
饿汉式存在浪费资源的可能。因为如果程序中一个对象实例都没有使用,那么饿汉式创建的对象就浪费了;
而懒汉式是使用时才创建,就不存在这个问题。
在JavaSE标准类中,java.lang.RunTime 就是经典的单例模式:
这篇关于Java 学习:设计模式 - 单例模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?