1

我有一个单例来管理从 plist 加载的首选项。我使用它多个应用程序。它包含类似的方法-(BOOL)boolForKey:(NSString *)key defaultValue:(BOOL)def

所以我可以在两个不同的应用程序中使用该类,只需提供不同的键,例如在一个应用程序中:[PreferenceManager boolForKey:@"UseAlternateColors" defaultValue:NO];

-(BOOL)useAlternateColors但是在该应用程序中使用类似(仅返回上一行的值)之类的方法会更容易。那么我应该将此方法添加到PreferenceManager使用类别(并且只有一个应用程序中的类别)还是创建子类OneAppPreferenceManager

在这个具体的例子中,是子类化还是使用一个类别更好?

4

1 回答 1

1

如果您需要将新数据成员添加到派生的PreferenceManager. 但是,由于后备存储始终保持不变,我认为在这种特定情况下使用类别会更好。

使用类别可以让您保持单例PreferenceManager不变,以及设置它的代码。如果要进行子类PreferenceManager化,则需要对实例化单例的代码进行额外的更改,以便它使用PreferenceManagerSubclass而不是 raw PreferenceManager。对于一个类别,这种改变是不必要的。

于 2013-08-24T00:56:03.860 回答