这里直接上代码吧,比较简单的一种设计模式
分为懒汉式跟饿汉式,当然要考虑线程同步跟效率问题
饿汉式:
class Single
{
private static final Single single = new Single();//所谓饿汉式,就是这个意思,就是说不管你需不需要我都创建出来,静态的关键是static而final在懒汉式中就不能使用
//了,如果使用了那么这个就是个常量了,在以后我们创建这个的时候就是不可变的了
private Single(){}
private static Single getInstance()
{
return single;
}
}
懒汉式:
class Single
{
private static Single single=null;//这里为空,所以说是懒汉式,就是说只有需要的时候我才创建,不需要我不创建,是为懒汉式,注意不能为final常量
private static Singel(){}
private static Single getInstance()
{
if(single==null)//这里的判断就是说为了当single为null的时候我就不执行下边的判断了,提高效率
{
synchronized(Single.class)//这里我进行了同步,静态函数的锁是函数class
{
if(Single.class)//这里的判断就是为了辨别是否要进行Single的创建
{
single = new Single();//创建出单例
}
}
}
return single;//肯定是在最后进行返回的
}
}