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; } }