zoukankan      html  css  js  c++  java
  • 在ios中使用单例模式编程

    本文转载至 http://blog.csdn.net/remote_roamer/article/details/7107007

        1.    @implementation Singleton
        2.     
        3.    + (Singleton *)instance  {
        4.            static Singleton *instance;
        5.           
        6.            @synchronized(self) {
        7.                    if(!instance) {
        8.                            instance = [[Singleton alloc] init];
        9.                           
        10.                           
        11.                    }
        12.            }
        13.           
        14.            return instance;
        15.    }
        16.     
        17.    @end
      这个单例可以用[Singleton instance]得到.
      一次查阅下面的步骤:
    第四行:
        声明了静态变量,如果你有JAVA编程背景的话,这里或许会让你有点疑惑,在C(C++ 和 Objective-C)中,一个静态局部变量作用域存在于函数内,但是生命周期是整个程序,在下一次该函数调用时仍可使用。(和java中的类静态变量被该类各个实例变量共有的特点相似)。
        译者注:关于静态变量有疑问的同学请猛击这里:http://baike.baidu.com/view/675642.htm
    第六行:
        我们想使用线程保护,这样同时的两个[Singleton instance]调用不会产生两个独立的对象实例。即使在一个单线程程序中,这种Synchronization不会有大的执行时间开销,而且这为以后开发打下了好的基础。
    第七行:
        检查是否该类对象实例已经初始化。我们是否需要生成该类的实例。
    十四行:
        返回创建的/已存在的对象实例。
  • 相关阅读:
    单链表反转
    【华为悦读汇】技术发烧友:M-LAG
    Linux系列—策略路由、ip rule、ip route
    对象存储,为什么那么火?
    关于存储技术的最强入门科普
    OpenStack入门科普,看这一篇就够啦!
    虚拟化技术的本质
    师屎胜于熊便:FCoE iSCSI FC组网PK
    懂了!VMware/KVM/Docker原来是这么回事儿
    集群文件系统是什么
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/3825817.html
Copyright © 2011-2022 走看看