----------------------android培训、java培训、期待与您交流! ----------------------
老规矩先上代码:
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
}
return s;
}
}
2:
class Single
{
private static Single s = null;
private Single(){}
public static synchronized Single getInstance()
{
if(s==null)
{
s = new Single();
}
return s;
}
}
3:
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;
}
}
刚好论坛少有人问及此类问题,我就Ctrl+C一下,吼吼!!
单例模式基本上可以分两种-------(懒汉式、饿汉式)
那么何为单例模式呢??
定义:单例模式确保一个类只有一个实例,自行创建这个实例并向整个系统提供这个唯一的实例。
从定义上看单例模式有这么几个关键特性:
1、一个类只能有一个实例
2、类自己创建这个实例
3、整个系统公用这个实例
详细的分析在下面代码以注释的形式展示
.w3.org/1999/xhtml单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例
1:饿汉式
//为何叫他饿汉式呢?因为不管它饿不饿,他都先做好一碗粥,(静态实例化对象)让大家感觉他天天都在饿着(o(∩_∩)o 哈哈,其实我感觉应该叫他勤汉式)
class Single
{
private Single(){}//私有的构造函数,这是单例的基本保障,可以思考一下
private static Single s = new Single();//在类的内部 构建一个静态对象,大家都知道,不管几个对象静态对象都至创建一次
public static Single getInstance()//对外提供一个接口,确保整个程序都得到统一对象
{
return s;
}
}
2:懒汉式
//为何叫他懒汉式呢?因为除非他饿的不行了,他才会去做碗粥(调用getInstance()才创建对象,创建的时候还要确定来确定去,没见过这么懒的)
class Single
{
private static Single s = null;
private Single(){}
public static synchronized Single getInstance()
{
if(s==null)//判断实例是否存在,
{
s = new Single();
}
return s;
}
}
3:懒汉安全版
//懒汉有一个BUG就是多线程在并发请求的时候不能保证单例的唯一,大家可以好好思考一下
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;
}
}
----------------------android培训、java培训、期待与您交流! ----------------------
813

被折叠的 条评论
为什么被折叠?



