美文网首页程序员架构算法设计模式和编程理论
Gank基友系列--简单的纯单例实现

Gank基友系列--简单的纯单例实现

作者: SherlockBlaze | 来源:发表于2017-06-25 16:01 被阅读0次

Gank模式开启

今天很是无聊,又去逛了基友的博客。在里面读了两篇博客,一篇说的是单例设计模式,一篇说的是关于他这篇单例设计模式的反射侵犯

好奇心驱使

关于基友文章里的单例模式的确是有BUG的,那种方式是可以被轻松破坏掉的。在上面第二篇博客中也有详细的代码介绍。并且在第一篇博客末尾,他推荐使用枚举单例模式。枚举单例模式被称为实现单例模式成为最佳的方法。大家一定要学。但是那种方式非常的高大上,于是本着好奇心原则,我写了一个非常平民化的纯正单例模式。

代码

package com.blaze.study.designpattern;

import java.lang.reflect.Constructor;

/**
 * Created by sherlockblaze on 25/06/2017.
 */
class RealInstance{
    public static boolean flag = false;

    private RealInstance(){
        synchronized (RealInstance.class){
            if(flag == false) flag = !flag;
            else throw new RuntimeException("别太过分");
        }
    }

    private static class SingleHolder{
        private static final RealInstance REAL_INSTANCE = new RealInstance();
    }

    public static RealInstance getInstance(){
        return SingleHolder.REAL_INSTANCE;
    }

}

public class Demo_01 {
    public static void main(String[] args)throws Exception{
        Class classobj = Class.forName("com.blaze.study.designpattern.RealInstance");
        Constructor constructor = classobj.getDeclaredConstructor();
        constructor.setAccessible(true);
        Object obj1 = constructor.newInstance();
        System.out.println(obj1);
        Object obj2 = constructor.newInstance();
        System.out.println(obj2);
    }
}

结果

![Screen Shot 2017-06-25 at 15.51.29](http://os295mdc5.bkt.clouddn.com/Screen Shot 2017-06-25 at 15.51.29.png)

最后

欢迎大家访问我的博客

相关文章

  • Gank基友系列--简单的纯单例实现

    Gank模式开启 今天很是无聊,又去逛了基友的博客。在里面读了两篇博客,一篇说的是单例设计模式,一篇说的是关于他这...

  • Swift 单例模式(Singleton)的实现

    前言 在看了其他语言的单例实现后,于是去查了一下swift单例的实现,发现swift单例实现及其的简单,简单到我对...

  • Eevee框架2——单例

    这里我们跟唐老师一样,先创建一个单例的基类,这样后续很多类都可以简单地实现单例。如果不了解单例的,唐老师的免费前几...

  • 前端开发工程师必备系列-几个简单的JS单例模式

    前端开发工程师必备系列-几个简单的JS单例模式 JavaScript单例模式 1. 单例模式 单例模式(Singl...

  • 设计模式第二篇、单例设计模式

    目录1、什么是单例设计模式2、单例设计模式的简单实现3、单例设计模式面临的两个问题及其完整实现4、单例设计模式的应...

  • kotlin-5、类与对象

    创建空类 构造函数 调用构造函数 继承 接口 实现接口 data类 最简单的单例 自己实现单例

  • Singleton 单例模式

    搬运自大神博客单例模式(Singleton)及其C++实现 单例模式,在GOF的《设计模式:可复用面向对象软件的基...

  • 设计模式之单例模式

    什么是单例模式 单例模式(Singleton),简单来说,就是被单例的对象只能有一个实例存在。 单例模式的实现方式...

  • swift 单例

    1、最简单实现 2、使用GCD技术实现的单例模式

  • __new__()

    1. 实现一个简单的单例模式

网友评论

    本文标题:Gank基友系列--简单的纯单例实现

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