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;
        }   
    } 
    
  • 相关阅读:
    C++命名法则
    腾讯附加题---递归
    决策树
    ubuntu16.04安装后干的事
    node
    iview datetime日期时间限制
    GitLab CI/CD
    本地项目上传到github
    npm--配置私服
    gitlab添加yml文件.gitlab-ci.yml
  • 原文地址:https://www.cnblogs.com/whsa/p/4315373.html
Copyright © 2011-2022 走看看