zoukankan      html  css  js  c++  java
  • 两种单例模式的写法

    不使用GCD

    #import "ServiceManager.h"
    
    static ServiceManager *defaultManager;
    
    @implementation ServiceManager
    
    +(ServiceManager *)defaultManager{
        if(!defaultManager)
            defaultManager=[[self allocWithZone:NULL] init];
        return  defaultManager;
    }
    
    @end

    使用GCD

    #import "ServiceManager.h"
    @implementation ServiceManager
    +(ServiceManager *)sharedManager{
      static dispatch_once_t predicate;
      static ServiceManager * sharedManager;
      dispatch_once(&predicate, ^{
        sharedManager=[[ServiceManager alloc] init];
      });
      return sharedManager;
    }
    @end
    

    dispatch_once这个函数,    它可以保证整个应用程序生命周期中某段代码只被执行一次!

  • 相关阅读:
    对js数组的splice实现
    前端必读
    命令模式
    访问者模式
    观察者模式
    解释器模式
    装饰器模式
    组合模式
    抽象工厂模式
    搜索结果关键词高亮显示
  • 原文地址:https://www.cnblogs.com/hecheng0314/p/4764215.html
Copyright © 2011-2022 走看看