黑马程序员技术交流社区

标题: 单例中的复写方法问题 [打印本页]

作者: 啊康    时间: 2014-4-21 22:12
标题: 单例中的复写方法问题
在单例设计模式中,我可以理解复写alloc方法,copy方法
但是为什么要复写retain,release,retaincoun,autorelease方法。
这些方法好像没有创建对象的功能?为什么要复写呢?
求解惑!!

作者: Freedam    时间: 2014-4-22 11:13
复写retain和release,autorelease方法就是为了防止引用计数器加1,或者是减1.
因为引用计数器retainCount加1或是减1,都是证明类在内存中又被创建了一个或者释放掉了一块内存空间。
所以retain和autorelease被复写成return self,release被复写成空都是防止引用计数器的异常情况下的改变。
复写retainCount是为了确定单例中对象的唯一性。这些复写虽然从表现上与创建对象无关,但是确保了单例模式的设计健壮性,使单例的设计实现更稳定更安全。




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