java单例模式就有6种,你知道哪几种?!
来源:互联网 发布:张无忌萧峰 知乎 编辑:程序博客网 时间:2024/06/09 19:11
第一种: 双重查锁模式
/**
* Author : Akeem/**
* Email : zuiaisha1@126.com
* Created by Akeem on 2016/3/7.
* double check lock
*/
public class DoubleCheckLock {
private static DoubleCheckLock instance = null;
private DoubleCheckLock() {
}
public static DoubleCheckLock getInstance() {
if (instance == null) {
synchronized (DoubleCheckLock.class) {
if (instance == null) {
instance = new DoubleCheckLock();
}
}
}
return instance;
}
}
第二种:懒汉模式
/**
* Author : Akeem
* Email : zuiaisha1@126.com
* Description : 懒汉
* Created by Akeem on 2016/3/7.
*/
public class Idler {
private static Idler instance;
private Idler() {
}
public synchronized static Idler getInstance() {
if (instance == null) {
instance = new Idler();
}
return instance;
}
}
第三种:枚举单例
/**
* Author : Akeem
* Email : zuiaisha1@126.com
* Description :
* Created by Akeem on 2016/3/7.
*/
public enum SingleEnum {
INSTANCE;
public void doSomething() {
ToastUtils.showLongToast("do something...");
}
}
第四种 :静态内部类模式
/**
* Author : Akeem
* Email : zuiaisha1@126.com
* Description : 静态内部类
* Created by Akeem on 2016/3/7.
*/
public class StaticInner {
private static StaticInner instance;
public static StaticInner getInstance() {
return SingletonHolder.STATIC_INNER;
}
private static class SingletonHolder {
private static final StaticInner STATIC_INNER = new StaticInner();
}
}
第五种 第六种 : 恶汉单例,单例管理类
/**
* Author : Akeem
* Email : zuiaisha1@126.com
* Description : 单例管理类 ,系统就是这么干的
* Created by Akeem on 2016/3/7.
*/
public class SingletonManager {
private static Map<String, Object> objMap = new HashMap<>();
private SingletonManager() {
}
public static void registerInstance(String key, Object o) {
if (!objMap.containsKey(key)) {
objMap.put(key, o);
}
}
public static Object getService(String key) {
return objMap.get(key);
}
}
0 0
- java单例模式就有6种,你知道哪几种?!
- 【就你不知道-Java 建造模式】
- 【就你不知道-Java 适配器模式】
- 【就你不知道-Java 合成模式】
- 单例设计模式, 你知道几种?
- 你不知道的单例模式!!!
- java设计模式---你所不知道的单例模式
- 【设计模式】外观模式——“知道有它就行了,内容不要你懂。”
- java单例设计模式中你可能不知道的秘密
- Android单例模式你应该知道到一切
- 单例模式,你所应该知道的一切
- 单例模式,你知道的和你所不一定知道的一切
- 【就你不知道-Java 字符串】
- 【就你不知道-Java 继承】
- 【就你不知道-Java clone】
- 【就你不知道-Java 标识接口】
- JAVA单例模式有哪些?
- 侃侃你就知道
- C++变量的可见性
- 自定义ToggleButton
- 机器学习路线
- 设计网页时IE6中10个不得不注意的问题
- centos 7 菜鸟第一天 双启动
- java单例模式就有6种,你知道哪几种?!
- 链表:女生节快乐
- 编程思想的演变
- 开发人员面对产品经理的“为难” 得淡定
- svn提交提示 目录 is already locked
- Http 协议基础笔记之入门篇
- 【NDN基础】Networking Named Content 问题汇总
- java CountDownLatch 多线程文件搜索
- Flume+HBase采集和存储日志数据