`

Cocoa的单态(singleton)设计模式

阅读更多

如果你准备写一个类,希望保证只有一个实例存在,同时可以得到这个特定实例提供服务的入口,那么可以使用单态设计模式。单态模式在Java、C++中很常用,在Cocoa里,也可以实现。

由于自己设计单态模式存在一定风险,主要是考虑到可能在多线程情况下会出现的问题,因此苹果官方建议使用以下方式来实现单态模式:

  1. static MyGizmoClass *sharedGizmoManager = nil;
  2. + (MyGizmoClass*)sharedManager
  3. {
  4. @synchronized(self) {
  5. if (sharedGizmoManager == nil) {
  6. [[self alloc] init]; // assignment not done here
  7. }
  8. }
  9. return sharedGizmoManager;
  10. }
  11. + (id)allocWithZone:(NSZone *)zone
  12. {
  13. @synchronized(self) {
  14. if (sharedGizmoManager == nil) {
  15. sharedGizmoManager = [super allocWithZone:zone];
  16. return sharedGizmoManager; // assignment and return on first allocation
  17. }
  18. }
  19. return nil; //on subsequent allocation attempts return nil
  20. }
  21. - (id)copyWithZone:(NSZone *)zone
  22. {
  23. return self;
  24. }
  25. - (id)retain
  26. {
  27. return self;
  28. }
  29. - (unsigned)retainCount
  30. {
  31. return UINT_MAX; //denotes an object that cannot be released
  32. }
  33. - (void)release
  34. {
  35. //do nothing
  36. }
  37. - (id)autorelease
  38. {
  39.   return self;
  40. }
分享到:
评论

相关推荐

    设计模式在Cocoa中的应用

    本人写的一点关于cocoa中使用到的设计模式

    cocoa设计模式中文版

    cocoa设计模式中文版,给那些中文不好的朋友一点帮助

    COCOA设计模式 完整版 中文版

    ios高级进阶必备书籍,这本书很清晰并且是完整版,中文版

    Cocoa Design Patterns

    《Cocoa设计模式》共分为5个部分,按照由浅入深、循序渐进的原则详细介绍各种设计模式在Cocoa中的应用,并且提供了丰富的代码示例,方便读者学习《Cocoa设计模式》内容。《Cocoa设计模式》最后还包含一个附录,提供...

    《cocoa设计模式》源码

    cocoa设计模式书的源码,对于学习ios的架构非常有益。

    cocoa设计模式(亲测清晰)

    ios高级进阶必备书籍,这本书很清晰并且是完整版,中文版

    cocoa基本原理指南

    4. "Cocoa的设计模式" 描述Cocoa采纳的设计模式,特别是模 型-视-控制器对象模型。 5. "和对象进行通讯" 讨论Cocoa对象之间的通讯机制和编程接 口,包括委托、通告、和绑定技术。 6. "核心应用程序架构" 考察应用程序...

    cocoa 设计模式

    设计模式在COCOA中的应用,非常好的法语原版书籍,提高编程的效率,深入了解COCOA和OBJECTIVE-C

    cocoa design patterns.pdf

    cocoa 设计模式 英文版,本书介绍了 cocoa 的基本设计模式,以 MVC 为基础,有助于更好地理解 cocoa 框架

    在Swift中使用Cocoa的现有设计模式介绍

    主要介绍了在Swift中使用Cocoa的现有设计模式介绍,Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一,需要的朋友可以参考下

    Cocoa设计模式

    Cocoa设计模式, 获得全面的了解,更快的进入高手的行列

    Cocoa基本原理指南(2010年4月16日).zip

    4. "Cocoa的设计模式" 描述Cocoa采纳的设计模式,特别是模 型-视-控制器对象模型。 5. "和对象进行通讯" 讨论Cocoa对象之间的通讯机制和编程接 口,包括委托、通告、和绑定技术。 6. "核心应用程序架构" 考察应用...

    Objective-C编程之道 IOS设计模式解析

    书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架中的工作方式。 《Objective-C编程之道:iOS设计模式...

    《OBJECTIVE-C编程之道 IOS设计模式解析》电子书+源代码

    书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架中的工作方式。 《Objective-C编程之道:iOS设计...

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    C中实现单例模式7.4 子类化Singleton7.5 线程安全7.6 在Cocoa Touch框架中使用单例模式7.6.1 使用UIApplication类7.6.2 使用UIAccelerometer类7.6.3 使用NSFileManager类7.7 总结第三部分 接口适配第8章 适配器8.1 ...

    IOS设计模式解析及源码

    本书讲述如何在代码中应用创建型模式、结构型模式和行为模式等,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在Cocoa Touch中的工作方式。 本书适用于那些已经具备Objective-C基础、想进行高级iOS开发,...

    Cocoa 基本原理指南.pdf (中文)

    Cocoa基本原理指南提供了领略Cocoa技术景致的方向,介绍Cocoa的特性、基本概 念、专用术语、结构、以及潜在的设计模式,使开发者更加容易上手。 Cocoa基本原理指南的组织结构使读者可以逐步获取有关Cocoa开发的...

    Cocoa 是什么?

    对于刚刚加入这个阵营的开发者来说,Cocoa 像是一个巨大而未知的新世界。...Cocoa 基本原理指南提供了领略Cocoa 技术景致的方向,介绍Cocoa 的特性、基本概念、专用术语、结构、以及潜在的设计模式, 使开发者更加容易上手

    ios设计模式学习实例

    本应用实例中包含大部分的cocoa设计模式(已添加详细注释): 创建型:单例(单态)和抽象工厂 结构型:MVC、装饰器、适配器、外观(门面)、组合模式 行为型:观察者、备忘录、责任链、命令模式

    Cocoa基本原理指南

    领略Cocoa 技术景致的方向,介绍Cocoa 的特性、基本概念、专用术语、结构、以及潜在的设计模式, 使开发者更加容易上手。 Cocoa 基本原理指南的组织结构使读者可以逐步获取有关Cocoa 开发的一般性知识。它从最基础的...

Global site tag (gtag.js) - Google Analytics