gpt4 book ai didi

ios - Objective-C 和类集群模式

转载 作者:可可西里 更新时间:2023-11-01 03:33:08 25 4
gpt4 key购买 nike

我看了一些关于Class Cluster模式的资料,接下来理解:

  • public cluster类只提供接口(interface),没有实际实现,其他类针对不同情况实现;

  • 它与抽象工厂模式有一些相似之处:当我们调用方法+classNameWith...时,它会根据参数选择最合适的子类并返回它。

例如,+[NSNumber numberWithDouble:1.0],将返回存储 double 值的实现。

但我不明白的是:公共(public)集群类的 -init... 方法是如何工作的:[[NSNumber alloc] initWithDouble:1.0],因为在调用 alloc 之后它已经分配了 NSNumber 的实例,而不是它的子类。

那么,有人可以解释一下公共(public)集群类的 alloc-init 方法的实际工作原理,以及具体子类何时实例化和返回吗?

最佳答案

基本上,您分配的实例可以丢弃并替换为不同的实例。从技术上讲,这并不特定于类集群,这就是为什么当您在任何 init 方法中调用 super 时,您需要将结果设置为 self:

self = [super init];

关于ios - Objective-C 和类集群模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com