码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之 Singleton 单例模式

时间:2014-12-12 18:41:22      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:使用   sp   on   代码   as   new   应用   设计   br   

先上两段代码,区别仅在于是否涉及线程安全。

首先是不涉及多线程的单例:
public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } }
double check版的单例,线程安全:
public class Singleton { private static volatile Singleton INSTANCE = null; private Singleton() {} public static Singleton getInstance() { if(INSTANCE == null){ synchronized(Singleton.class){ if(INSTANCE == null){ INSTANCE = new Singleton(); } } } return INSTANCE; } }
1.单例的构造和指向单例的静态成员是私有的
2.单例的对外接口是共有的,一般是getInstance或者create之类的静态函数
3.单例成员可以在变量声明时创建,也可以在公共接口
getInstance中创建,具体看应用场景
4.非多线程环境下不需要double check,不必过度使用模式

设计模式之 Singleton 单例模式

标签:使用   sp   on   代码   as   new   应用   设计   br   

原文地址:http://www.cnblogs.com/fifila/p/4159959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!