美文网首页
两种特殊的单例模式

两种特殊的单例模式

作者: 西5d | 来源:发表于2018-04-06 15:10 被阅读17次

单例模式特性是只初始化一次,同时考虑满足懒加载的需要,以及满足多线程访问的安全性。在实际的生产使用中,比如像数据库连接,或者其他比较耗时同时需要只初始化一次的实例,都应该采用单例模式来创建。以下是两种比较特殊的单例模式,分别通过静态内部类和枚举来实现,满足只初始化一次,懒加载,多线程安全访问三个特性。其中多线程安全不额外加锁。

//枚举
public enum SingletonEnum {
    INSTANCE;
    private Map map = null;//other like db connections and so on,使用map来模拟

    SingletonEnum() {
        map = new HashMap<>();
    }

    public Map getInstance() {
        return map;
    }

    public static void main(String[] args) {
        Map m1 = SingletonEnum.INSTANCE.getInstance();
        Map m2 = SingletonEnum.INSTANCE.getInstance();

        System.out.println(m1 == m2);
    }
}
//静态内部类
public class Singleton {
    private String name;

    private Singleton() {
        name = "singleton";
    }

    public static Singleton getInstance() {
        return Holder.inst;
    }

    public String getName() {
        return name;
    }

    private static class Holder {
        private static final Singleton inst = new Singleton();
    }

    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1 == s2);
    }
}

相关文章

  • 单例模式

    单例模式(饿汉式) 单例模式(懒汉式) 解决两种的弊端的单例模式(双锁)

  • 单例模式之枚举类enum

    通过枚举实现单例模式 枚举类实现单例模式的优点 对于饿汉式单例模式和懒汉式单例模式了解的同学,使用以上两种单例模式...

  • 两种特殊的单例模式

    单例模式特性是只初始化一次,同时考虑满足懒加载的需要,以及满足多线程访问的安全性。在实际的生产使用中,比如像数据库...

  • 2019-08-27 java设计模式之单例模式

    1.单例模式概述 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿...

  • Swift的单例模式及如何处理并发访问

    Swift的单例模式 Swift有两种方式实现单例模式 1、全局常量 2、类型常量 处理单例模式的并发访问 1、多...

  • Go Singleton

    单例模式 单例模式(单子模式)是常用的软件设计模式,其核心结构中只包括一个被称之为单例的特殊类,通过单例模式可以保...

  • java单例模式

    单例模式 一、单例模式: 是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以...

  • python单例模式

    Python单例模式 单例模式 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。...

  • JAVA中实现单例模式的八种方式

    单例模式 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保...

  • Python实现单例模式

    单例模式的概念: 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可...

网友评论

      本文标题:两种特殊的单例模式

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