为什么要在应用成语中使用单例模式?
Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
单例模式的原理其实就是在一个类的内部实例化一个本类的对象,只提供一个静态方法返回本类实例。
要达到外部不可以实例化该类,就需要这个类有一个私有的构造方法。
但是又需要一个对本类实例化,又要延迟加载,所有就定义一个内部类实现。
代码如下:
public class Singleton3 {
private static Properties properties;
// 1.私有构造
private Singleton3() {
//在整个运行期间 只执行一次的业务代码
String config="database.properties";
properties=new Properties();
InputStream is=ConfigurationManager.class.getClassLoader().getResourceAsStream(config);
try {
properties.load(is);
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 2.创建一个类的实例对象
private static Singleton3 singleton;
// 内部类对本类实例化
private static class SingletonHelper {
private static final Singleton3 singleton3 = new Singleton3();
}
// 3.定义一个共有方法
public static Singleton3 getInstance() {
return SingletonHelper.singleton3;
}
}