Java-单例模式
单例模式
采用单例模式的意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
主要解决:一个全局使用的类频繁地创建与销毁。
何时使用:当您想控制实例数目,节省系统资源的时候。
如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。
关键代码:构造函数是私有的。
单例模式的实现方法有很多,最常用的为:饱汉式和饿汉式(也有一些别的叫法,如懒汉式,饥汉式)这两种实现方法的特点
饱汉式 - 占用内存低,效率低;
饿汉式 - 占用内存高,效率高
具体操作如下
饱汉式
public class Test {
// 私有化构造函数
private Test (){}
// 使用当前类作为本类属性,且不实例化
private static Test instance;
// 创建静态方法调用构造函数
public static synchronized Test getInstance() {
if (instance == null) {
instance = new Test();
}
return instance;
}
}
饿汉式
public class Test {
// 私有化构造函数
private Test (){}
// 使用当前类作为本类属性,且实例化
private static Test instance = new Test();
// 创建静态方法调用构造函数
public static synchronized Test getInstance() {
return instance;
}
}