黑马程序员技术交流社区

标题: OC 实现单例模式 [打印本页]

作者: 卧龙小    时间: 2014-9-23 02:00
标题: OC 实现单例模式
本帖最后由 卧龙小 于 2014-9-23 02:01 编辑

今天有同学讨论设计模式,写了个单例模式发出来,让大家喷喷,单利模式是让程序只有一个对象实例,在JAVA通常用于DAO中,构造单例一般将类的构造方法声明为private类型,通过静态方法对外提供实例对象
  1. @implementation Book
  2. static Book *instance= nil;

  3. +(Book *) getInstance //不需要实例化对象,即可调用的方法
  4. {
  5.      if(!instance)
  6.      {
  7.           instance = [[self alloc] init];
  8.      }
  9.      return instance;
  10. }
  11. @end

  12. +(id)allocWithZone:(NSZone *) zone //覆盖allocWithZone,防止任何类创建第二个实例,并采用锁机制进行保护
  13. {
  14.      @synchronized(self)
  15.      {
  16.           if(instance == nil)
  17.           {
  18.                instance = [super allocWithZone:zone];
  19.                return instance;
  20.           }
  21.      }
  22.      return instance;
  23. }
复制代码






作者: liwei92244256    时间: 2014-9-23 06:51
抱着学习的态度过来看下!
作者: zrtalent    时间: 2014-9-23 09:13
学习中。。。路过,学习了。
作者: 萧雨流风    时间: 2014-9-24 08:36
入学考试好像就有这么一道题
作者: wanyiyuan    时间: 2014-9-24 21:03
哥们 你这代码怎么贴上来的? 我不会贴啊,求指导




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2