类簇(class clusters)是抽象工厂模式在iOS下的一种实现,试图将多个类的实现统一在一起,对外只暴露简单的使用接口,隐藏类的真实实现。iOS中的NSArray,NSDictionary,NSArray以及NSNumber中都使用了这种实现。
__NSPlaceholderArray
这是一个中间占位类,在使用alloc方法进行空间开辟之后,未初始化之前的NSArray对象都是这个这个类的子类,而且多次调用alloc方法之后生成的是同一个对象.
所以在只是调用alloc方法之后,iOS将生成的数组对象指向了同一个地址空间,这样做也是为了最大限度节约不必要的内存开销.
__NSArray0
如果在NSArray类在调用alloc之后紧接着调用了init方法,那么生成的就是__NSArray0对象了。多次创建生成的是同一个对象。
__NSArrayM
NSMutableArray的初始化开始变得不一样,多次创建生成不同的对象。