� 例:实例
� 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码
模式。
� 例如:代表 JVM 运行环境的 Runtime 类。
要点: 1、某个类只能有一个实例; 构造器私有化 2、它必须自行创建这个实例;
含有一个该类的静态变量来保存这个唯一的实例 3、它必须自行向整个系统提供这个实例;
对外提供获取该实例对象的方式: (1)直接暴露 (2)用静态变量的 get 方法获
取
几种常见形式: 饿汉式:在类初始化时直接创建对象,不存在线程安全问题 直接实例
化饿汉式(简洁直观) 枚举式(最简洁) 静态代码块饿汉式(适合复杂实例化)
示例代码如下:
package com.atguigu.singleton;
/*
* 饿汉式:
* 在类初始化时直接创建实例对象,不管你是否需要这个对象都会创建
*
* (1)构造器私有化
* (2)自行创建,并且用静态变量保存
* (3)向外提供这个实例
* (4)强调这是一个单例,我们可以用 final 修饰
*/public class Singleton1 {
public static final Singleton1 INSTANCE = new Singleton1();
private Singleton1() {
}}
复制
示例代码如下:
package com.atguigu.singleton;
/*
* 枚举类型:表示该类型的对象是有限的几个
* 我们可以限定为一个,就成了单例
*/public enum Singleton2 {
INSTANCE}
复制
示例代码如下: