单例模式:
class Single{
private static Single s=new Single();
private Single(){}
public static Single getInstance(){//提供public公共方法用于返回该类唯一对象
return s;
}
}
class SingleDemo{
public static void main(String[] args){
Single s1=Single.getInstance();
Single s2=Single.getInstance();
s1.setNum(10);
s2.setNum(20);
System.out.println(s1==s2);
}
}
运行结果:true-->只会创建一个对象,所以地址相同(==比较地址),所以结果返回true
设计模式:
单例模式:保证一个类在内存中的对象的唯一性
必须对于多个程序使用同一个配置信息对象是,就需要保证该对象的唯一性
如何保证:
1:不允许其他程序用new创建该类对象
2:在该类创建一个本类实现
3:对外提供一个方法让其他程序可以获取该对象
步骤:
1:私有化该类构造函数
2:通过new在本类中创建一个本类对象
3:定义一个公有方法,将创建的对象返回
饿汉式(开发常用):
类加载,对象就建立
class Single{
private static Single s=new Single();
private Single(){}
public static Single getInstance(){
return s;
}
}
懒汉式
类加载并无对象,只有创建getInstance()对象才建立
//延迟加载形式
class Single{
private static Single s=null;
private Single(){}
public static Single getINstance(){
if(s==null){
s=new Single();
}
return s;
}
}