zoukankan      html  css  js  c++  java
  • 单例模式

    单例模式

    • 单例模式的作用就是保证在整个应用程序的生命周期中,任一时刻,单例类的实例都只存在一个。(比如计算机的打印程序只能有一个)

    • 实现方式:

    1. 饿汉模式(线程安全,调用效率高,但是不能延时加载)
    2. 懒汉模式(线程安全,调用效率不高,但是能延时加载)
    3. 双重检测锁模式(由于JVM底层模型原因,偶尔会出问题,不建议使用)
    4. 静态内部类式(线程安全,调用效率高,可以延时加载)
    5. 枚举类(线程安全,调用效率高,不能延时加载,可以天然的防止反射和反序列化调用)
    • 如何选用:

    • 单例对象 占用资源少,不需要延时加载,枚举 好于 饿汉

    • 单例对象 占用资源多,需要延时加载,静态内部类 好于 懒汉式

    • 实例:

        public  class Tset {
      
        /* 使用此方法实现的单例模式
         * 在类被加载时就会实例化这个类的一个对象
         * 由于在使用之前对象已经创建好,因此
         * 可以在多线程的环境下使用这种方法。
         * 
         * 使用单例模式,需要注意的是
         * 单例模式用来保证系统中一个类只有一个实例。
         * 单例类的构造函数必须为私有
         * 同时单例类必须提供一个全局访问点。
         * 
         * */
      
        	private Tset() {}
      
        	private static Tset Instance = new Tset();
      
        	public static Tset getInstance() {
        		return Instance;
        		}
        	}
  • 相关阅读:
    Ubuntu20.04本地安装Redash中文版
    ubuntu设置root密码
    qmake设置生成文件分类
    QML对象的构造函数和析构函数
    QString使用split按照某字符进行分解
    Qt的qDebug直接打印不添加头文件
    C++宏定义中的#
    Qt设置生成的文件路径
    QWidget禁止最大化
    js-去掉回车和空格
  • 原文地址:https://www.cnblogs.com/renxiuxing/p/9376917.html
Copyright © 2011-2022 走看看