单例模式的重点就是让程序每次只能产生类的一个实例:
技术路线就是:让类的构造方法成私有的然后设计一个public static的方法,这个方法返回的就是一个这个类的对象,为什么要是Static呢因为构造方法私有化后我们不能再外部new出这个对象了,也就是只能是静态加载了。
代码示例如下:Singleton类
public class Singleton {
private static Singleton instance;//用instance变量来保存要创建的实例
private Singleton() {}//私有构造函数
public static Singleton getInstance() {//静态的获取实例的方法
if (instance == null) instance = new Singleton();
return instance;
}
}
private static Singleton instance;//用instance变量来保存要创建的实例
private Singleton() {}//私有构造函数
public static Singleton getInstance() {//静态的获取实例的方法
if (instance == null) instance = new Singleton();
return instance;
}
}
测试类代码:public class SingletonTest {
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1==s2) System.out.println("同一个对象");
}
}
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1==s2) System.out.println("同一个对象");
}
}
输出:同一个对象
这也是单利模式产生的原理。
为什么要用单例模式?
因为平时在我们的程序设计中有的事物只有一个实例,如脱机的打印机,CPU,公司的班车等等,这时每次我们只能产生一个实例供别的类调用这也就需要单例模式了。