zoukankan      html  css  js  c++  java
  • 《剑指Offer》---实现Singleton模式

     题目:设计一个类,我们只能生成该类的一个实例,实现Singleton模式(单例模式)。

    思路:只能生成一个实例的类是实现了Singleton(单例)模式的类型。由于要求只能生成一个实例,因此我们必须把构造函数设为私有函数以禁止他人创建实例。

    解法一:只适用于单线程环境(饿汉式,线程安全)

    实现单例模式的代码如下:

    package day20181207_Singleton;
    
    public class Singleton {
         private static Singleton instance = new Singleton();
         
         //将构造函数设置为私有,这样在Singleton类之外new的话,编译器就会报错。即使是Singleton的子类也不行。
         private Singleton() {
             
         }
         
         public static Singleton getInstance() {
             return instance;
         }
         
         
              public static void main(String[] args) {
                Singleton single = Singleton.getInstance();
                System.out.println(single);
                System.out.println(getInstance());
                
                //判断Singleton类是否只能生成一个实例
                //如果为true,说明Singleton类只能创建了一个实例
                System.out.println(Singleton.getInstance()==Singleton.getInstance());
            }
         
    }

    亲测结果:

    可知,由于结果为true,表明这个Singleton类只生成了一个实例。

  • 相关阅读:
    深度学习面试问题
    重新学习pytorch的库函数等..
    新电脑的操作系统win10的所有设置问题汇总
    二叉搜索树,和红黑树,
    Most common words
    Word histogram
    Random numbers
    Word frequency analysis
    DSU
    Sequences of sequences
  • 原文地址:https://www.cnblogs.com/Qinstudy/p/10179222.html
Copyright © 2011-2022 走看看