单例模式是一种软件设计模式,再它的核心结构中指包含一个被称为单例类的特殊类。
通过单例模式可以保证系统中一个类只有一个势力而且该势力易于外界访问,从而方便对势力个数的控制并节约系统资源。如果希望在系统中某各类的对象只能存在一个,单例模式是最好的解决方案。
单例模式目前用的多的是用dispatch_once只创建一次,如下:
创建单例类:
.h
//创建单例类 +(instancetype)shareSingleTools;
.m
+(instancetype)shareSingleTools { //1.声明一个空的静态的单例对象 static HttpTools *httptools = nil; //2.给声明一个静态的GCD的单次任务 static dispatch_once_t onceToken; //3.执行GCD单次任务,对对象进行初始化 dispatch_once(&onceToken, ^{ httptools = [[self alloc] init]; }); return httptools; }
总的来说,利用单例类调用方法和直接使用类方法,都可以实现,我是一直用类方法,包括工具类,请求类等!