赣州行业网站建设,电子商务网站功能设计与分析,柳州网站制作推荐,怎么做网页公证单例模式要点#xff1a; 一个类只需要一个实例化对象#xff1b;必须自行创建实例#xff1b;必须自行向整个系统提供这个实例 实现#xff1a; 只提供私有构造方法#xff1b;有一个该类的静态私有对象#xff1b;提供一个静态公有方法用于创建、获取静态私有对象…单例模式要点 一个类只需要一个实例化对象必须自行创建实例必须自行向整个系统提供这个实例 实现 只提供私有构造方法有一个该类的静态私有对象提供一个静态公有方法用于创建、获取静态私有对象 分析 私有构造方法-不能随意创建实例静态私有对象确保只有一个实例对象静态公有方法-提供一个外部接口可直接通过类名调用该方法方法内部能直接调用静态对象 饿汉式实现方法在创建类时实例化
// 在创建类时直接实例化空间换时间
public class SingletonOne{//1. 私有构造private SingletonOne(){}//2. 在创建该类时初始化静态私有对象private static SingletonOne instance new SingletonOne();// 3.提供静态公有方法返回静态实例对象public static SingletonOne getInstance(){return instance;}
}懒汉式实现方法静态公有方法中实例化
// 在调用静态公有方法后才完成对象的实例化
public class SingletonTwo{//1. 私有构造private SingletonOne(){}//2. 在创建该类时初始化静态私有对象private static SingletonTwo instance null;// 3.提供静态公有方法返回静态实例对象public static SingletonOne getInstance(){if(instancenull) // 保证只会实例化一次instance new SingletonTwo();return instance;}
}饿汉式 vs 懒汉式
单例模式的实现方法实例化对象的时间空间特点时间特点线程安全饿汉式在类加载时候完成空间占用时间长在第一次使用时加载速度快线程安全懒汉式在第一次调用共有方法时完成不会造成内存空间浪费在第一次使用时加载时间相对慢线程不安全