单例设计模式
功能:保证一个类在内存中的对象唯一性。
需求:必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
保证唯一性的方式:
1,不允许其他程序用new创建该类对象。
2,在该类创建一个本类实例。
3,对外提供一个方法让其他程序可以获取该对象。
实现步骤:
1,私有化该类构造函数。
2,通过new在本类中创建一个本类对象。
3,定义一个公有的方法,将创建的对象返回。
单例设计举例:
1. 在本类中创建该对象的实例
2. 构造函数私有化,使得构造函数只能在本类中调用
3. 静态方法返回创建的该类的实例
经过以上3步的操作,内存中只存在一个Single类的实例,即图中的0x0045
单利模式在工程中的使用:
饿汉式:
class Single{
privatestatic Single s = new Single();
privateSingle(){}
publicstatic Single getInstance(){
return s;
}
}
类一加载,对象就已经存在了。
懒汉式
class Single2 {
privatestatic Single2 s = null;
privateSingle2(){}
publicstatic Single2 getInstance(){
if(s==null)
s= new Single2();
returns;
}
}
类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。即延迟加载形式。