美文网首页
java 8单例创建模板

java 8单例创建模板

作者: youpd | 来源:发表于2022-10-25 17:03 被阅读0次
/**
 * 懒加载的单例封装
 * 支持线程安全
 */
final
public class LazySingleton<T> implements Supplier<T> {

    /**
     * 创建对象的lambda,不能返回null
     */
    private final Supplier<T> creator;

    private volatile T instance;

    private LazySingleton(Supplier<T> creator) {
        this.creator = Objects.requireNonNull(creator);
    }

    /**
     * 获取或创建实例
     */
    @Override
    public T get() {
        T ins = instance;
        if (null == ins) {
            synchronized (this) {
                ins = instance;
                if (null == ins) {
                    ins = creator.get();
                    if (null == ins) {
                        throw new IllegalStateException("create instance null");
                    }
                    instance = ins;
                }
            }
        }
        return ins;
    }

    /**
     * 移除已创建的实例
     */
    public T remove() {
        T ins = instance;
        instance = null;
        return ins;
    }

    //

    /**
     * @param creator lazy创建对象的lambda,返回值不能为空
     */
    public static <T> LazySingleton<T> of(Supplier<T> creator) {
        return new LazySingleton<>(creator);
    }

}

使用范例

public class Mian3 {
    static LazySingleton<Mian3> singleton = LazySingleton.of(Mian3::createS3Client);

    public static void main(String[] args) {
        Mian3 mian3 = Mian3.singleton.get();
    }

    public static Mian3 createS3Client() {
        return new Mian3();
    }
}

相关文章

  • java 8单例创建模板

    使用范例

  • 第8章 使用RecyclerView显示列表

    单例与数据集中存储 单例是特殊的Java类,在创建实例时,一个单例类仅允许创建一个实例。应用能在内存里活多久,单例...

  • 创建型模式——单例模式

    单例模式简介 单例模式是java创建型模式之一,主要作用是创建唯一对象。 单例模式特点:1.单例类只有一个实例。2...

  • 常用的设计模式

    Java中常用的设计模式 1.单例模式 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自...

  • 从零开始学设计模式(三)——单例模式(Singleton Pat

    单例模式(Singleton Pattern) 单例模式也属于创建型模式,难度等级为初级,是Java中最简单和最常...

  • Java & Groovy & Scala & Kotlin -

    Scala 篇 单例对象 在 Java 中实现单例对象通常需要自己实现一个类并创建 getInstance() 的...

  • kotlin精讲-第4章(5)kotlin Object关键字

    创建单例 Java中的单例 什么是单例?单例是一种设计模式,用来保证某一个类只有一个实例。在Kotlin中,Obj...

  • 单例模式

    java设计模式-单例模式 @(JAVA设计模式) 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行...

  • Java创建单例模式

    创建单例模式 第一种方式 优点:简单易懂 缺点:在不需要此类的时候也会new一个对象,造成了资源的浪费,如果有多个...

  • Kotlin-单例类

    1、单例模式:设计模式之一,可以避免创建重复的对象。 2、单例模式工作机制Java写法: public class...

网友评论

      本文标题:java 8单例创建模板

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