单例设计模式的目的是使得类的一个对象成为系统中唯一实例。如何保证对象唯一性呢?
不允许其他程序用new创建该类对象。
在该类创建一个本类实例。
对外提供一个方法让其他程序可以获取该对象。
步骤:
(1)私有化该类构造函数。
(2)通过new在本类中创建一个本类对象。
(3)定义一个公有的方法,将创建的对象返回。
方法一——饿汉式
class Single{
private static 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;
}
}