单例模式
上一篇 /
下一篇 2016-04-13 20:58:44
/ 个人分类:设计模式
单例模式的核心思想是将构造函数私有化,再在类的内部写一个public的getInstance方法,让这个方法去判断要不要实例化。多线程情况下要进行双重判定
class Singleton{
private Singleton(){}
private static Singleton instance;
private static readonly Object synRoot = new Object();
public static Singleton getInstance(){
if(instance==null){
lock(synRoot);
if(instance==null){
instance = new Singleton;
return instance;
}
}
}
}
单例模式有“饿汉式”和“懒汉式”这两种区别。“懒汉式“是你真正用到时再建立对象
public class Singleton{
private Singleton(){}
private static Singleton singleton = null;
public static synchronized getInstance(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
}
”饿汉式“是不管有没有需要,一上来就建立一个对象
public class Singleton{
private Singleton(){}
private static Singleton singleton = new Singleton();
public static synchronized Singleton getInstance(){
return singleton;
}
}
收藏
举报
TAG: