要想保证对象唯一:
1、为了避免其他程序过多建立该类对象,先禁止程序建立该对象
2、换为了让其程序可以访问到该类对象,只好在本类中,自定义一个对象。
3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式
体现方法:
1、将构造函数私有化
2、在类中创建一个本类对象
3、提供一个方法可以获取到该对象
饿汉式
class Single{
private Single(){}
private static Single s= new Single();
public static Single getInstance(){
return s;
}
}
另一种方式:懒汉式
class Single{
private static Single s=null;
private Single(){}
public static Single getInstance(){
if(s==null)
s=new Single();
return s;
}
}
区别:
1、饿汉式类加载时就创建了,如果一直不使用,则会浪费资源,懒汉式是延迟加载的,只有第一次使用时才会创建。
2、饿汉式是线程安全的,懒汉式有可能会造成线程不安全。