单例设计模式

     我这人懒惯了,今天心血来潮来聊一聊单例设计模式,为什么会想到了它呢,因为今天面试被雷到了!其实我面过很多人,仿佛大家都知道怎么用,可为什么用,似乎都不很明白。这就是打算写一点的原因。

      其实知识点比较少的,可是大家都不曾注意,似乎懂了,其实不然!就像大家都知道的一样,单例设计模式只会在内存中生成一次,程序不退出就不会被释放。可是为什么呢?那就用下面的代码来解释吧:
  • (AccountManager *)sharedManager
    {
    static AccountManager * sharedAccountManagerInstance = nil;
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
    sharedAccountManagerInstance = [[self alloc] init];
    });
    return sharedAccountManagerInstance;
    }

因为修饰当前对象用的是 static 关键字,所以此对象不会释放,除非程序退出!因为 用到了 dispatch_once 所以不会再此创建!这才是根本原因!

至于什么时候用呢,那必须是频繁使用的对象才会去用(就比如一款拍照社交的软件,拍照部分就可以用这个设计模式创建对象,避免重复创建,造成不必要的浪费),不得不用的时候才回去用(就比如后台下载)。

若有不对的地方,敬请指点和指指点点!要是觉得还可以的话,请点赞收藏!

你可能感兴趣的:(单例设计模式)