博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[置顶] Objective-C编程之道iOS设计模式单例解析(2)
阅读量:6079 次
发布时间:2019-06-20

本文共 1161 字,大约阅读时间需要 3 分钟。

上一篇文章,提到了单例子类化的问题。正好最近,我在Stack Overflow看见一位国外高人,也谈及了单例子类化的一些内容。思考之后,总结了一些内容。其大意是利用NSDirectory存储不同子类的单例实例,这样可以很好的解决单例子类化的问题。OK,talk is cheap,show me the code! 多说无益,以下是我自己写的一段示例代码

 

#import "MySingleton.h"@implementation MySingletonstatic NSMutableDictionary * singletonDictionary=nil;+(MySingleton *) sharedInstance{    if(singletonDictionary==nil){        singletonDictionary=[NSMutableDictionary dictionaryWithObject:[NSAllocateObject(self, 0, NULL) init] forKey:[[self class]description]];            }    else{        if([singletonDictionary objectForKey:[[self class] description]]==nil){            [singletonDictionary setObject:[NSAllocateObject(self, 0, NULL) init] forKey:[[self class] description]];        }            }        return [singletonDictionary objectForKey:[[self class] description]];    }-(void) release{    }-(id) retain{    return self;}-(id)autorelease{    return self;}-(NSUInteger)retainCount{    return NSUIntegerMax;}+(id)allocWithZone:(NSZone *)zone{        return [[self sharedInstance]retain];}@end

 

拥有这样的单例模式的父类,子类只需直接继承父类,即可轻松实现属于自己的类单例模式,而且同时支持很多不同子类和父类的单例并存。当然,子类也可以重新定义自己的retain,release,autorelease方法,以进行合适的内存管理。

我是小强,请多多指教。

 

 

转载地址:http://pxhgx.baihongyu.com/

你可能感兴趣的文章
根据旋转前后的向量值求旋转矩阵
查看>>
微软开放Kinect for Windows样本代码
查看>>
武汉户口的必要性
查看>>
计算机语言的基本理论
查看>>
[转]java加密算法简要介绍
查看>>
aaa
查看>>
批处理命令篇--配置免安装mysql
查看>>
VMWare虚拟机系统网络配置
查看>>
性能优化你必须知道的那些事儿
查看>>
锋利的jQuery-4--给事件添加命名空间
查看>>
linux概念之cpu分析
查看>>
性能调优攻略
查看>>
Java策略模式(Strategy模式) 之体验
查看>>
负载均衡探测器lbd
查看>>
【转】浅谈.net remoting 与webservice
查看>>
Golang 笔记 5 go语句
查看>>
ef core
查看>>
JavaScript——DOM或以树形展示的Web页面
查看>>
Linux之用户管理--初级上
查看>>
使用Chrome快速实现数据的抓取(一)——概述
查看>>