IOS 单例模式

单例模式:整个程序中,只有一个实例,我们把这种应用称之为单例模式。

我对单例模式的理解:
单例模式所表现出的形式类似于 c#中的静态类,静态方法 静态变量,在程序中我们只需调用方法或变量,不用生成对象再引用,而且这些静态变量 静态类 静态方法,在整个应用中都是共享的,方便程序访问。


单例模式的特点:
单例模式的类,只能生成一个实例;
单例模式需由自己生成自己的实例;
单例模式所产生的方法对整个应用都有效;
IOS单例模式应用:
单例模式UML图

Singleton
属性:
static uniqueInstance
操作:
+(Singleton *)sharedInstance

//Singleton.h

   @interface Singleton :NSObject
    + (Singleton *)sharedManager;
    @property (strong,nonatomic) NSString * singletonData;
    @end
  

//Singleton.m

#import “Singleton.h”

   @implementation Singleton
   @synthesize singletonData = _singletonData;
   static Singleton *sharedManager = nil;
   + (Singleton *)sharedManager
   {
    static dispath_once_t once;
           dispath_once(&once,^{
              sharedManager = [[self alloc]init];
           });
       return sharedManager;
    }
      

其中 static Singleton *shareManager为静态变量,类方法+ (Singleton *)sharedManager 为类方法,不需要申明就可以使用,
dispath_once_t 是OC提供的机构体,
dispath_once为OC提供的函数,此函数的功能可以保存整个应用程序在生命周期中只执行一次代码块,
dispath_once 函数使代码只运行一次,
dispath_once函数是为单例模式而产生的函数