单例设计模式:
解决:保证了一个类在内存中只能有一个对象。
比如多程序访问同一个配置文件。希望多程序操作的都是同一个配置文件中的数据。
那么就需要保证该配置文件对象的唯一性。
思路:
怎么做才能保证这个对象是唯一的呢?
1,其他程序随时用new创建该类对象,无法控制个数。
结论:不让其他程序创建该类的对象。因为不可以控制。
2,不让其他程序创建,该类在本类中自己创建一个对象。
3,该类将创建的对象对外提供,让其他程序获取并使用。
步骤:
1,怎么实现不让其他程序该类对象呢?
将该类中的构造函数私有化。
2,在本类中创建一个本类对象。
3,定义一个方法,返回值类型是本类类型。让其他程序通过该方法就可以获取到该类对象。
*/
//饿汉式
class Single
{
private static Single s = new Single();//0x0078
private Single(){}
public static Single getInstance()//定义方法是为了可控。
{
return s;
}
/**/
}
//懒汉式
//单例的延迟加载方式。
class Single2
{
private static Single2 s = null;
private Single2(){}
public static Single2 getInstance()
{
if(s==null)
s=new Single2();
return s;
}
}
哪个更好点呢,比较一下帮我 |
|