zoukankan      html  css  js  c++  java
  • iOs 单例模式的定义,实现、步骤

        单例模式就是一个类在系统中最多只有一个实例对象,并通过一个全局的入口对这个实例对象进行访问。

        对于共享的资源,实现多个对象去封装是不必要的,不光占用系统资源,还有可能造成冲突,所以一般使用单例模式。

    #import "DSSingletonObject.h"
    
    @implementation DSSingletonObject
    
    + (DSSingletonObject *)defaultObject {
        static DSSingletonObject *defaultObjectInstance = nil;
        
        if (!defaultObjectInstance)
            defaultObjectInstance = [[super allocWithZone:NULL] init];
        
        return defaultObjectInstance;
    }
    
    + (id)allocWithZone:(struct _NSZone *)zone {
        return [self defaultObject];
    }
    @end

      

    #import <Foundation/Foundation.h>
    
    @interface DSSingletonObject : NSObject
    
    // 写法一
    + (instancetype)defaultObject;
    
    // 写法二:线程安全,iOS4之后常用这种
    + (DSSingletonObject *)sharedObject;
    
    @end
    

      

    int main(int argc, const char * argv[])
    {
        DSSingletonObject *obj = [DSSingletonObject defaultObject];
        NSLog(@"%p", obj);
        
        DSSingletonObject *obj2 = [[DSSingletonObject alloc] init];
        NSLog(@"%p", obj2);
        
        DSSingletonObject *obj3 = [[DSSingletonObject alloc] init];
        NSLog(@"%p", obj3);
        
        
        
        return 0;
    }
    

      

  • 相关阅读:
    动态传参
    函数的介绍
    文件的操作
    send email with formatted table
    minimize and close window with customed winform
    python algorithm
    something important about docker
    book list
    which language is suitable for what to do
    Find Duplicate Items in list fast
  • 原文地址:https://www.cnblogs.com/tang910103/p/5061436.html
Copyright © 2011-2022 走看看