当前位置:   article > 正文

单例模式几种实现方式和代码_简单的单例模式代码

简单的单例模式代码

一、饿汉式

不管需不需要这个对象,在类初始化时,这个对象都会被创建出来
不存在线程安全问题
1.直接实例化:

/**
 * 1.饿汉式直接实例化
 * @author kun
 */

public class Singleton1 {

    public static final Singleton1 INSTANCE = new Singleton1();
    private Singleton1(){

    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.枚举:表示该类型的对象是有限的几个,限定为一个就成了单例

/**
 * @author kun
 */
public enum  Singleton2 {
    INSTANCE
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.静态代码块

/**
 * 静态代码块
 * 常用的情况:要从配置文件里读取信息
 * @author kun
 */
public class Singleton3 {
    public static final Singleton3 INSTANCE ;

    static {
        INSTANCE = new Singleton3();
    }
    private Singleton3(){

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

二、懒汉式

1.适用于单线程的(线程不安全)

/**
 * 懒汉式:延迟创建这个实例对象
 * 构造器私有化
 * 用一个静态变量保存这个唯一实例
 *    提供一个静态方法来获取这个实例对象
 * @author kun
 */
public class Singleton4 {
    private static Singleton4 instance;
    private Singleton4(){
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读