【发布时间】:2012-11-09 17:09:33
【问题描述】:
我有一个 Parent 类和一个 Child 类。 Child 派生自 Parent。我只实例化 Child 类,父级永远不会直接初始化,只有子级。 我至少需要父母成为单身人士。如果这不起作用,那么作为单身人士的孩子也可以。 我尝试了以下方法,但并没有将其更改为单例:
static MySingleton *sharedSingleton;
+ (void)initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
sharedSingleton = [[MySingleton alloc] init];
}
}
Child 类调用 [super init] 来实例化 Parent。你能帮帮我吗?
编辑:我为我的解决方案(架构)添加了一些背景信息:我有一个连接到 Web 服务的 Web 服务客户端。我有一个基类(父类),其中包含有关连接的信息(经过身份验证、如何连接等),并且我有从这个基类派生的不同子类。对不同子类的需求是一个子类负责一组 Web 服务逻辑,另一个子类负责另一组 Web 服务逻辑。问题是,我希望连接信息是单例的(因为它们都只使用一个连接,而不是很多)。
【问题讨论】:
-
那个
initialized变量是多余的,为什么不检查if (sharedSingleton == nil)呢? -
也许您可以简要解释一下您要实现的目标,因为让 Parent 是一个单身人士,而从中派生出一个 Child 对我来说并不显得有点混乱。或许有更好的解决方案?
标签: objective-c class inheritance singleton hierarchy