美文网首页
单例设计模式

单例设计模式

作者: 骑着老鼠虐大象 | 来源:发表于2017-07-11 00:12 被阅读19次
         我这人懒惯了,今天心血来潮来聊一聊单例设计模式,为什么会想到了它呢,因为今天面试被雷到了!其实我面过很多人,仿佛大家都知道怎么用,可为什么用,似乎都不很明白。这就是打算写一点的原因。
    
          其实知识点比较少的,可是大家都不曾注意,似乎懂了,其实不然!就像大家都知道的一样,单例设计模式只会在内存中生成一次,程序不退出就不会被释放。可是为什么呢?那就用下面的代码来解释吧:
    
    • (AccountManager *)sharedManager
      {
      static AccountManager * sharedAccountManagerInstance = nil;
      static dispatch_once_t predicate;
      dispatch_once(&predicate, ^{
      sharedAccountManagerInstance = [[self alloc] init];
      });
      return sharedAccountManagerInstance;
      }

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

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

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

    相关文章

      网友评论

          本文标题:单例设计模式

          本文链接:https://www.haomeiwen.com/subject/iecphxtx.html