标题: 单例设计模式的疑惑 [打印本页] 作者: 何家旺 时间: 2013-1-27 17:05 标题: 单例设计模式的疑惑 单例设计模式,到底要怎么用呢,具体来说什么是单例设计模式?饿汉式和懒汉式区别又是什么呢?
饿汉式。
class Single
{
private static final Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
懒汉式
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s = new Single();
}
}
return s;
}
}作者: 折纸时代 时间: 2013-1-27 17:18
单例的意思就是 只有一个实例可供使用.
比如,系统只有一个窗口管理,或者一个数据库访问点等,创建太多的类完全是没有意义的.
饿汉式单例类是为了应用设计出来的,所以一般都会使用,资源也就不是浪费了. 作者: 刘军亭 时间: 2013-1-27 17:48
//饿汉式
class Single
{
private static final Single s = new Single();//特点什么都不管首先new一个对象放在那里
private Single(){}//为了保证对象就那么一个,私有构造函数
public static Single getInstance()//返回那个对象
{
return s;
}
}
懒汉式
class Single
{
private static Single s = null;//特点:并没有直接创建对象。
private Single(){}
public static Single getInstance()//等有了要了才去给他创建对象
{
if(s==null)
{
synchronized(Single.class) //防止多线程时候操作出错的同步代码块
{
if(s==null)
s = new Single();
}
}
return s;
}
}