如果你准备写一个类,希望保证只有一个实例存在,同时可以得到这个特定实例提供服务的入口,那么可以使用单态设计模式。单态模式在Java、C++中很常用,在Cocoa里,也可以实现。
由于自己设计单态模式存在一定风险,主要是考虑到可能在多线程情况下会出现的问题,因此苹果官方建议使用以下方式来实现单态模式:
-
static MyGizmoClass *sharedGizmoManager = nil;
-
-
+ (MyGizmoClass*)sharedManager
-
{
-
@synchronized(self) {
-
if (sharedGizmoManager == nil) {
-
[[self alloc] init]; // assignment not done here
-
}
-
}
-
return sharedGizmoManager;
-
}
-
-
+ (id)allocWithZone:(NSZone *)zone
-
{
-
@synchronized(self) {
-
if (sharedGizmoManager == nil) {
-
sharedGizmoManager = [super allocWithZone:zone];
-
return sharedGizmoManager; // assignment and return on first allocation
-
}
-
}
-
return nil; //on subsequent allocation attempts return nil
-
}
-
-
- (id)copyWithZone:(NSZone *)zone
-
{
-
return self;
-
}
-
-
- (id)retain
-
{
-
return self;
-
}
-
-
- (unsigned)retainCount
-
{
-
return UINT_MAX; //denotes an object that cannot be released
-
}
-
-
- (void)release
-
{
-
//do nothing
-
}
-
-
- (id)autorelease
-
{
-
-
}
分享到:
相关推荐
本人写的一点关于cocoa中使用到的设计模式
cocoa设计模式中文版,给那些中文不好的朋友一点帮助
ios高级进阶必备书籍,这本书很清晰并且是完整版,中文版
《Cocoa设计模式》共分为5个部分,按照由浅入深、循序渐进的原则详细介绍各种设计模式在Cocoa中的应用,并且提供了丰富的代码示例,方便读者学习《Cocoa设计模式》内容。《Cocoa设计模式》最后还包含一个附录,提供...
cocoa设计模式书的源码,对于学习ios的架构非常有益。
ios高级进阶必备书籍,这本书很清晰并且是完整版,中文版
4. "Cocoa的设计模式" 描述Cocoa采纳的设计模式,特别是模 型-视-控制器对象模型。 5. "和对象进行通讯" 讨论Cocoa对象之间的通讯机制和编程接 口,包括委托、通告、和绑定技术。 6. "核心应用程序架构" 考察应用程序...
设计模式在COCOA中的应用,非常好的法语原版书籍,提高编程的效率,深入了解COCOA和OBJECTIVE-C
cocoa 设计模式 英文版,本书介绍了 cocoa 的基本设计模式,以 MVC 为基础,有助于更好地理解 cocoa 框架
主要介绍了在Swift中使用Cocoa的现有设计模式介绍,Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一,需要的朋友可以参考下
Cocoa设计模式, 获得全面的了解,更快的进入高手的行列
4. "Cocoa的设计模式" 描述Cocoa采纳的设计模式,特别是模 型-视-控制器对象模型。 5. "和对象进行通讯" 讨论Cocoa对象之间的通讯机制和编程接 口,包括委托、通告、和绑定技术。 6. "核心应用程序架构" 考察应用...
书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架中的工作方式。 《Objective-C编程之道:iOS设计模式...
书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架中的工作方式。 《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 ...
本书讲述如何在代码中应用创建型模式、结构型模式和行为模式等,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在Cocoa Touch中的工作方式。 本书适用于那些已经具备Objective-C基础、想进行高级iOS开发,...
Cocoa基本原理指南提供了领略Cocoa技术景致的方向,介绍Cocoa的特性、基本概 念、专用术语、结构、以及潜在的设计模式,使开发者更加容易上手。 Cocoa基本原理指南的组织结构使读者可以逐步获取有关Cocoa开发的...
对于刚刚加入这个阵营的开发者来说,Cocoa 像是一个巨大而未知的新世界。...Cocoa 基本原理指南提供了领略Cocoa 技术景致的方向,介绍Cocoa 的特性、基本概念、专用术语、结构、以及潜在的设计模式, 使开发者更加容易上手
本应用实例中包含大部分的cocoa设计模式(已添加详细注释): 创建型:单例(单态)和抽象工厂 结构型:MVC、装饰器、适配器、外观(门面)、组合模式 行为型:观察者、备忘录、责任链、命令模式
领略Cocoa 技术景致的方向,介绍Cocoa 的特性、基本概念、专用术语、结构、以及潜在的设计模式, 使开发者更加容易上手。 Cocoa 基本原理指南的组织结构使读者可以逐步获取有关Cocoa 开发的一般性知识。它从最基础的...