美文网首页Java设计模式
java设计模式 — 单例模式

java设计模式 — 单例模式

作者: 出来混要还的 | 来源:发表于2019-09-16 09:59 被阅读0次

常见模式

/**
 *
 * @author zhangzhen
 */
public class Singleton {

  // 私有构造器
  private Singleton() {
  }

  private static final Singleton INSTANCE = new Singleton();

  public static Singleton getInstance() {
    return INSTANCE;
  }
}

问题:使用没使用都会产生实例

懒汉模式

/**
 *
 * @author zhangzhen
 */
public class Singleton2 {

  // 私有化构造器
  private Singleton2() {
  }

  private static Singleton2 INSTANCE;

  public static Singleton2 getInstance() {
    if (INSTANCE == null) {
      INSTANCE = new Singleton2();
    }
    return INSTANCE;
  }
}

问题:存在线程问题,解决思路加锁

/**
 *
 * @author zhangzhen
 */
public class Singleton2 {

  // 私有化构造器
  private Singleton2() {
  }

  private static Singleton2 INSTANCE;

  public static Singleton2 getInstance() {
    if (INSTANCE == null) {
      synchronized (Singleton2.class) {
        if (INSTANCE == null) {
          INSTANCE = new Singleton2();
        }
      }

    }
    return INSTANCE;
  }
}

问题:由于加锁性能会下降

静态内部类模式

/**
 * 静态内部类模式 <br>
 * JVM 保证单例
 * 并且加载时不会实例化
 * @author zhangzhen
 */
public class Singleton4 {

  private Singleton4() {
  }

  private static class Singleton5 {
    private final static Singleton4 INSTANCE = new Singleton4();
  }

  public static Singleton4 getInstance() {
    return Singleton5.INSTANCE;
  }
}

大神模式

/**
 * 解决线程问题,并反序列化
 * 
 * @author zhangzhen
 */
public enum Singleton3 {

  INSTANCE;
}

问题:看着别扭,不是类

相关文章

  • JAVA设计模式 - 单例模式

    JAVA设计模式 - 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一...

  • 单例模式

    JAVA设计模式之单例模式 十种常用的设计模式 概念: java中单例模式是一种常见的设计模式,单例模式的写法...

  • Java中单例模式你用的哪一种?

    一起讨论java中的单例模式。单例模式是java设计模式中算是最简单的设计模式了。 * java实现单例模式的写法...

  • JAVA设计模式之单例模式

    JAVA设计模式之单例模式

  • 设计模式

    Java 设计模式情景分析 ——单例模式 Java 设计模式情景分析——建造者模式 Java 设计模式情景分析——...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • 设计模式——单例模式

    设计模式——单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,这种类型...

  • 设计模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式...

  • 设计模式《一》单例模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属...

  • 设计模式之单例模式详解(附源代码)

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属...

网友评论

    本文标题:java设计模式 — 单例模式

    本文链接:https://www.haomeiwen.com/subject/czylyctx.html