DLSubclassAwareSingleton 是一个随机突发奇想的结果,变成了一个基本但可用的概念证明。
在 NSObject
上实现一个 Objective-C 分类,它实现了常见的 单例模式,并增加了允许 子类提供自己的共享实例而不需要任何附加代码。
请注意:作为一个常见的代码拼写,在使用单例之前仔细考虑。
无论如何。一段代码可能比一千个字还要说明白。
#import <Foundation/Foundation.h>
#import "DLFoo.h"
#import "DLFooBar.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// DLFooBar inherits from DLFoo and doesn't
// implement any singleton logic of its own.
// Next line returns instance of class DLFoo:
DLFoo *foo = [DLFoo sharedFoo];
// Next line returns instance of class DLFooBar:
DLFooBar *foobar = [DLFooBar sharedFoo];
}
return 0;
}