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

    以下是单例模式的一种实现

    1 class BootLoader{
    2 public:
    3     static BootLoader* instance(){
    4         static BootLoader bl;
    5         return &bl;
    6     }
    7 private:
    8         BootLoader(){}
    9 };          

    通过BootLoader::instance()实现类只存在唯一实例,每次访问类中的数据成员时调用instance()函数即可,下面分析以下这种实现单例模式的原理

    1. 构造函数位私有,外部无法访问,通过类的静态函数instance()可以实现创建对象

    2 . 在instance()函数中定义了局部 静态对象,静态对象存储区变更到全局区中,对象中的数据成员一直有效知道程序结束

    3. 为什么每次调用instance()函数时没有多次创建局部 静态变量,因为静态对象的缘故,每次instance函数执行到此处时先检查对象是否已经存在,存在即直接返回,不存在创建后返回

    static对象如果出现在类中,那么该对象即使从未被使用到,它也会被构造以及析构。而函数中的static对象,如果该函数从未被调用,这个对象也就绝不会诞生,但是在函数每次被调用时检查对象是否需要诞生。

  • 相关阅读:
    jQuery效果
    jQuery事件
    jQuery安装和基础语法
    html5响应式布局
    html5新特性--音频视频,拖放
    js-浏览器DOM
    js-Array
    js-Date
    js-String
    Cocoa touch(五):UIControl
  • 原文地址:https://www.cnblogs.com/yulei0713/p/11327907.html
Copyright © 2011-2022 走看看