我已经阅读了一些关于类集群模式的信息,然后理解了:
公共集群类只提供接口,没有实际实现,其他类根据不同情况实现;
它与抽象工厂模式有一些相似之处:当我们调用方法时
+classNameWith...
,它可以根据参数选择最合适的子类并返回它。
例如,+[NSNumber numberWithDouble:1.0]
, 将返回用于存储双精度值的实现。
但我不明白-init...
的是:公共集群类的方法如何工作:
[[NSNumber alloc] initWithDouble:1.0]
,因为在调用alloc
它之后已经分配了 的实例NSNumber
,而不是它的子类。
那么,有人可以解释一下alloc-init
公共集群类的方法实际上是如何工作的,以及具体子类何时实例化并返回?