单例模式的四种实现方式

作者: 关玮琳linSir | 来源:发表于2017-07-07 09:33 被阅读669次

原本单纯的我一直认为这世界上的单例模式,只有饿汉和懒汉呢,今天发现了,原来单例模式有四种实现方式。

饿汉模式

public class Singleton {
    /**
     * 饿汉式
     */
    private Singleton() {

    }
    
    private static final Singleton SINGLETON = new Singleton();
    
    public static Singleton getInstance(){
        return SINGLETON;
    }
    
    public void system(){
        System.out.println("---lin---> singleton");
    }
    
}

懒汉模式

public class Singleton2 {
    /**
     * 懒汉式
     */
    private Singleton2() {

    }

    private static Singleton2 singleton2 = null;

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

    public void system(){
        System.out.println("---lin---> singleton2");
    }
}

枚举模式

public enum Singleton3 {
    INSTANCE;
    private Singleton3(){
        
    }
    
    public void system(){
        System.out.println("---lin---> singleton3");
    }
}

Holder模式

public class Singleton4 {
    /**
     * 带有Holder的方式
     * 类级内部类,也就是静态的成员内部类,该内部类的实例与外部类的实例没有绑定关系
     * 只有被调用的时候才会装在,从而实现了延迟加载
     */
    private Singleton4() {

    }

    private static class SingletonHolder {
        /**
         * 静态初始化器,由JVM来保证线程安全
         */
        public static final Singleton4 INSTANCE = new Singleton4();
    }

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

    public void system() {
        System.out.println("---lin---> singleton4");
    }
}

相关文章

  • Python之单例模式总结

    一、单例模式 a、单例模式分为四种:文件,类,基于__new__方法实现单例模式,基于metaclass方式实...

  • 一行代码实现swift的单例模式

    swift实现单例的四种方式 : 单例模式 单例模式是设计模式中最简单的一种,甚至有些模式大师都不称其为模式,称其...

  • 单例模式的常用实现方式

    单例模式属于最常用的设计模式,Java中有很多实现单例模式的方式,各有其优缺点 实现方式对比 单例实现方式线程安全...

  • C++中线程安全的单例模式

    简介 单例模式是很常用的一种设计模式,在实现过程中要非常注意线程安全,我们会介绍四种方式来实现线程安全的单例模式:...

  • 设计模式--单例模式

    单例模式概述 单例模式实现方式 为什么要使用单例模式 单例模式实现方式 饿汉式 类加载后就会将对象加载到内存中,保...

  • kotlin实现单例模式

    1.懒汉式实现单例模式 2.线程安全懒汉式实现单例模式 3.双重校验懒汉式实现单例模式 4.静态内部类方式实现单例模式

  • Python经典面试题21道

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python最经典面试题21道,必看!

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python 经典面试题

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python 经典面试题

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

网友评论

  • 瑶琴频曲羽衣魂:题主写的“懒汉”应该是双重检测模式。
  • different_loyal:之前在《android源码设计模式》一书中有看到这四种,讲到了各种利弊,最后推荐的是holder模式

本文标题:单例模式的四种实现方式

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