看完视频,对单例设计的模式还不是很了解,在网上找了半天关于单例设计模式的知识,总结了一下。
在编程中,经常要求一个类中只存在一个实例。这样做的好处就是很多对象操作的话,操作的结果只在这一个实例中操作。而操作的过程就是按着一定的顺序来操作这个实例,一个时间段只能提供一个对象进行操作。否则就会造成线程的堵塞等情况。在网上看到个有点滑稽但很实际的例子拿来和大家分享:比如一个公厕,只有一个坑,这个时候大街上有好多个人想解决问题,但是只能一个个来,这个时候就有必要把“公厕”这个类设计成单实例的,确保统一时刻访问公厕的人只能有一个。于是经过很多程序员的思考和总结便有了单例设计模式。
单例模式的的特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
public class SingleDemo
{
public static void main(String[] args)
{
Single s1=Single.getInstance();
Single s2=Single.getInstance();
if(s1.equals(s2))
{
System.out.println("s1和s2代表同一个对象");
}
else
{
System.out.println("s1和s2代表的不是同一个对象");
}
}
}
/*饿汉式
class Single
{
private Single(){}
private static Single s=new Single();
public static Single getInstance()
{
return s;
}
}
*/
class Single//懒汉式
{
private Single(){}
private static Single s=null;
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s=new Single();
}
}
return s;
}
}
在实际操作中建议使用饿汉式。