zoukankan      html  css  js  c++  java
  • 单例模式(Singleton Pattern)

    单例模式:

      和new类似,用来创建实例。

      单例对象的类保证了只有一个实例存在。

    原理:

      1、该类的构造函数定义为私有方法,这样外面不能通过new实例化此类,只能在类里面实例化

      2、类返回一个获取实例的方法

    构建方式:

      懒汉方式:全局的单例实例在第一次被使用是创建

      饿汉方式:全局的单例实例在类装载时构建

    维基百科code例子:

    饿汉方式创建:

      public class Singleton {
        private static final Singleton INSTANCE = new Singleton();
      
        // Private constructor suppresses   
        private Singleton() {}
     
        // default public constructor
        public static Singleton getInstance() {
            return INSTANCE;
        }
      }

    懒汉方式创建:

      public class Singleton {
        private static volatile Singleton INSTANCE = null;
      
        // Private constructor suppresses 
        // default public constructor
        private Singleton() {}
      
        //thread safe and performance  promote 
        public static  Singleton getInstance() {
            if(INSTANCE == null){
                 synchronized(Singleton.class){
                     //when more than two threads run into the first null check same time, to avoid instanced more than one time, it needs to be checked again.
                     if(INSTANCE == null){ 
                         INSTANCE = new Singleton();
                      }
                  } 
            }
            return INSTANCE;
        }
      }
  • 相关阅读:
    【HDOJ】2102 A计划
    this关键字
    static(静态、修饰符)
    手势抽取过程&代码复用
    Android:padding和android:layout_margin的区别
    平移动画
    读取系统联系人
    获取sim卡序列号
    图片选择器
    md5加密过程
  • 原文地址:https://www.cnblogs.com/Mr-Wenyan/p/10208025.html
Copyright © 2011-2022 走看看