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

    单例/单体模式(Singleton)

    首先,单例模式是对象的创建模式之一,此外还包括工厂模式。

    单例模式的三个特点:

    1,该类只有一个实例

    2,该类自行创建该实例(在该类内部创建自身的实例对象)

    3,向整个系统公开这个实例接口

    Java中大概是这个样子

    class Singleton {
        //私有,静态的类自身实例
        private static Singleton instance = new Singleton();
        //私有的构造子(构造器,构造函数,构造方法)
        private Singleton(){}
        //公开,静态的工厂方法
        public static Singleton getInstance() {
            return instance;
        }
    } 
    

    这个单例类在自身被加载时instance会被实例化,即便加载器是静态的。因此,对于资源密集 ,配置开销较大的单体更合理的做法是将实例化(new)推迟到使用它的时候。即惰性加载(Lazy loading), 它常用于那些必须加载大量数据的单体。修改下

    class LazySingleton {
        //初始为null,暂不实例化
        private static LazySingleton instance = null;
        //私有的构造子(构造器,构造函数,构造方法)
        private LazySingleton(){}
        //公开,静态的工厂方法,需要使用时才去创建该单体
        public static LazySingleton getInstance() {
            if( instance == null ) {
                instance = new LazySingleton();
            }
            return instance;
        }   
    } 
    
  • 相关阅读:
    MYSQL 优化指南
    设计模式——依赖倒置原则实例(PHP实现)
    PHP开发笔记
    反射应用
    HMAC-SHA1算法签名及Authorization头认证
    PHP接口和抽象类的区别
    PHP 模板方法模式使用
    RSA JS 加密解密DEMO
    RSA加密解密(PHP Demo)
    【Spark调优】提交job资源参数调优
  • 原文地址:https://www.cnblogs.com/whsa/p/4315373.html
Copyright © 2011-2022 走看看