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

    单例设计模式:
    通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例,即一个类只有一个对象实例
    主要实现步骤分为三步:
    ①将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象
    ②在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型
    ③定义一个静态方法返回这个唯一对象

    单例设计模式是分为两种:
    1.饿汉式
    立即加载就是使用类的时候已经将对象创建完毕
    优点:实现起来简单,没有多线程同步问题
    缺点:当单例类被加载的时候,会初始化static的instance,静态变量被创建并分配内存空间,从这以后,这个static的instance对象便一直占着这段内存(即便你还没有用到这个实例),当类被卸载时,静态变量被摧毁,并释放所占有的内存,因此在某些特定条件下会耗费内存。
    代码实现:

    2.懒汉式
    在被调用方法时才创建对象
    优点:实现简单,当类SingletonTest被加载的时候,静态变量static的instance未被创建并分配内存空间,当getInstance方法第一次被调用时,初始化instance变量,并分配内存,因此在某些特定条件下会节约了内存。
    缺点:存在多线程问题
    代码实现
    (多线程情况下)

    (非多线程情况下)

  • 相关阅读:
    CTFHUB-技能树-Web-文件上传
    CTFHUB-技能树-Web-XSS-反射型
    一个算法习题
    python2和python3如何共存并都可用
    beacon帧字段结构最全总结(一)——beacon基本结构
    WiFi基础知识整理
    无线 WIFI 的13个信道频率范围
    Wifi模块的工作原理
    WIFI无线协议802.11a/b/g/n/ac的演变以及区别
    HTTP网络通讯协议详解
  • 原文地址:https://www.cnblogs.com/lch-Hao/p/10817575.html
Copyright © 2011-2022 走看看