设计模式:解决某一类问题最行之有效的方法。java中有23中设计模式。
单例设计模式:解决一个类在内存只存在一个对象。
保证唯一:1.避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。2.还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
怎么体现:
1.构造函数私有化。2.在类中创建一个本类对象。3.提供一个方法可以获取到该对象。
先初始化对象称为饿汉式。
main方法中如果改为:
public static void main(String[] args) {
Single s1 = Single.getInstance();
Single s2 = Single.getInstance();
s1.setNum(30);
System.out.println(s2.getNum());
}
}
class Single{
private int num;
public void setNum(int num) {
this.num = num;
}
public int getNum() {
return num;
}
private Single(){}
private static Single s = new Single();
public static Single getInstance() {
return s;
}
}
获取的结果为30.
对于事物该怎么描述:当需要将该事物的对象保证在内存中唯一时,就将以上的三步加上。
单例模式2
对象是方法被调用时,才初始化,也叫做对象的延时加载,称为:懒汉式。
Single类进内存,对象还没有存在,只有调用了getinstance方法时,才建立对象。
Single(){}
private static Single s = null;
public static Single getInstance() {
if(s==null)
s = new Single();
return s;
}