前言: 很多小伙伴对Java单例模式的使用不是很了解,IT培训网小编就来为大家进行讲解。单例是一种创建设计模式,它确保
很多小伙伴对Java单例模式的使用不是很了解,IT培训网小编就来为大家进行讲解。单例是一种创建设计模式,它确保只有一个同类对象存在,并为任何其他代码提供对它的单点访问。
单例与全局变量几乎具有相同的优点和缺点。尽管它们非常方便,但它们破坏了代码的模块化。
Java中模式的使用
使用示例:许多开发人员认为单例模式是一种反模式。这就是为什么它在 Java 代码中的使用量正在下降的原因。
尽管如此,Java 核心库中还是有相当多的 Singleton 示例:
java.lang.Runtime#getRuntime()
java.awt.Desktop#getDesktop()
java.lang.System#getSecurityManager()
识别: Singleton 可以通过静态创建方法识别,返回相同的缓存对象。
Naïve Singleton(单线程)
实现一个草率的 Singleton 非常容易。您只需要隐藏构造函数并实现静态创建方法即可。
Singleton.java: 单例
包 refactoring_guru.singleton.example.non_thread_safe;
公共最终类单例{
私有静态单例实例;
公共字符串值;
私人单例(字符串值){
// 下面的代码模拟了缓慢的初始化。
尝试 {
线程.sleep(1000);
} 捕捉(InterruptedException ex){
ex.printStackTrace();
}
this.value = 值;
}
公共静态单例getInstance(字符串值){
如果(实例==空){
实例 = 新单例(值);
}
返回实例;
}
}
DemoSingleThread.java: 客户端代码
包 refactoring_guru.singleton.example.non_thread_safe;
公共类 DemoSingleThread {
public static void main(String[] args) {
System.out.println("If you see the same value, then singleton was reused (yay!)" + "\n" +
"If you see different values, then 2 singletons were created (booo!!)" + "\n\n" +
"RESULT:" + "\n");
Singleton singleton = Singleton.getInstance("FOO");
Singleton anotherSingleton = Singleton.getInstance("BAR");
System.out.println(singleton.value);
System.out.println(anotherSingleton.value);
}
}
OutputDemoSingleThread.txt: 执行结果
如果您看到相同的值,则重复使用单例(耶!)
如果您看到不同的值,则创建了 2 个单例(嘘!!)
结果:
FOO
FOO
通过上述介绍,相信大家对Java单例模式的使用已经有所了解,希望对大家的学习能够有所帮助哦。
文章出自:http://qh.itpxw.cn/peixun/software/2022121636.html
文章标题:Java单例模式的使用
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...