singleton模式
单例模式,在系统里,你要判断一下,如果有一些类,只需要一个实例对象就可以了,那就给那个类做成单例的模式
常见的场景
(1)比如说,你自定义了一个框架,自定义了一份xml格式的一个配置文件,你要读取这个配置文件,这个配置文件中的数据,读取到类中,这个类的实例,只要保存一份就可以。那么此时可以使用单例模式,将这个类做成他的实例只能有一个,在这个实例中保存了配置文件中的数据
(2)类似于我们之前给大家讲解的那个工厂模式,有些工厂是需要实例化对象的,要基于实例化对象,来实现继承、接口、实现等功能,工厂实例可以做成单例的,就可以了
(3)你自己去判断,如果是一个类的实例只需要保持一份,那就做成单例
饿汉式:
//饿汉
public class Singleton {
private static final Singleton instance =new Singleton();
private Singleton() {
}
public static Singleton getInstance(){
return instance;
}
}
//懒汉式
//懒汉式 双重检查 线程安全
public class LazySingleton {
private static LazySingleton lazySingleton;
public static LazySingleton getInstance() {
if (lazySingleton == null) {
synchronized (LazySingleton.class) {
if (lazySingleton == null) {
lazySingleton = new LazySingleton();
}
}
}
return lazySingleton;
}
}
网友评论