Java设计模式之单例模式
来源:互联网 发布:多源异构数据融合 编辑:程序博客网 时间:2024/06/06 07:13
单例模式存在的意义在于优化我们的程序性能,减少不必要的开辟内存。优化我们的代码结构,使调用方式更加方便与严谨,使业务逻辑更加集中化,可控化,使封装的思想得到更好的发挥。
单例模式的写法有很多种,在这里只介绍两种个人认为比较好的写法,只介绍多线程环境下的单例模式,能够抵抗复杂与高强度压力的代码才是好代码,当然,这也会使性能稍逊于普通环境下的单例模式。
模式一:
public class DBHelper { private DBHelper() { } public final static DBHelper instance = new DBHelper(); public static DBHelper getInstance() { return instance; }}
以上为第一种模式,从代码可以看到,我们使用了final来修饰单例对象,这样使得在不管是不是在多线程环境下,这个单例的objet都只会创建一次。
模式二:
public class DBHelper { private DBHelper() { } public static DBHelper getInstance() { return SingleHolder.INSTANCE; } private final static class SingleHolder { private final static DBHelper INSTANCE = new DBHelper(); }}
从代码可以看出,我们在一个静态final的holder类创建了一个静态final的单例对象,然后在获取的时候,直接使用这个静态final的holder类访问这个静态final单例,这样就实现了单例只会被创建一次。因为静态变量只有在第一次访问类的时候才会被加载,才会被实例化,这样就保证了只有获取单例的时候才会去实例,对比上面第一种模式,节省了性能。同时,我们使用了final和static修饰了单例持有类,静态类在多线程访问时是会互斥的,而且单例还使用了final进行修饰,很好的保证了多线程环境下的安全性。
以上即为单例模式的介绍。
阅读全文
0 0
- java设计模式之单例模式
- Java模式设计之单例模式
- Java模式设计之单例模式
- Java模式设计之单例模式
- java设计模式之单例模式
- Java模式设计之单例模式
- Java模式设计之单例模式
- Java设计模式之单例模式
- Java设计模式之单例模式
- Java设计模式之单例模式
- Java设计模式之单例模式
- Java模式设计之单例模式
- java设计模式之单例模式
- java设计模式之单例模式
- java设计模式之单例模式
- java设计模式之单例模式
- java设计模式之单例模式
- java设计模式之单例模式
- K8S两周年!中美庆生系列之Google大咖直播!
- 翻译:使用Python写JSON Exporter
- Android 获取手机联系人以及短信内容
- 3ds Max插件开发(五)The Reference System参考系统
- Android—获取手机联系人
- Java设计模式之单例模式
- socket网络编程
- windows 用virtualenv创建不同python版本的虚拟环境
- 单列模式实现
- virt-manager无法启动的问题
- 转盘抽奖js实现
- 一种小封装485芯片
- ContentReslover获取通讯录
- HDU 1689 Just a HooK(线段树+延迟标记)