1.单例设计模式:
解决的问题:保证一个类的对象在内存中的唯一性。
应用场景:多个程序都在操作同一个配置文件时,需要程序A操作后的结果,程序B要知道并继续基于A操作后
的结果进行操作——前提:数据都存储在配置文件对象中。
要求程序A和程序B操作的配置文件对象是同一个。
2.怎么实现单例模式?
a.不让其他程序new。
b.干脆在本类中自己new一个对象,这样可以不让其他程序new,自己new,可以实现数量控制。
c.对外提供让球他程序获取该对象的方式。
解决:
类中的构造函数私有化。
在类中new一个对象
定义一个方法返回该对象。
3.代码实现:
A.饿汉式:
class Single
{//先创建一个本类对象
private static Single s=new Single( );
//构造函数私有化
private Single(){
......
}//只有类自己可以访问
//定义一个方法返回该对象,让其他程序可以控制。
public static final Single getInstance(){
return s;
//之所以定义方法访问就是为了可控
}
}
Single s1=Single.getInstance();
Single s2=Single.getInstance();
s1==s2;//true
B.懒汉式:延迟加载方法
class Single
{
private static Single s=null;
private Single(){};
public static Single getInstance(){
if(s==null)
s=new Single();
return s;
}
}