1

plist から読み込まれた設定を管理するシングルトンがあります。複数のアプリで使用しています。次のようなメソッドが含まれています-(BOOL)boolForKey:(NSString *)key defaultValue:(BOOL)def

したがって、1 つのアプリなどで異なるキーを指定するだけで、2 つの異なるアプリでクラスを使用できます。[PreferenceManager boolForKey:@"UseAlternateColors" defaultValue:NO];

-(BOOL)useAlternateColorsただし、そのアプリだけに (上記の行から値を返すだけの)ようなメソッドを用意する方が簡単です。したがって、このメソッドをPreferenceManagerカテゴリを使用して追加する必要があります (カテゴリは 1 つのアプリにのみ含める) か、次のようなサブクラスを作成する必要がありますOneAppPreferenceManagerか?

この特定の例では、サブクラス化するのとカテゴリを使用するのとではどちらがよいでしょうか?

4

1 に答える 1

1

派生した に新しいデータ メンバーを追加する必要がある場合は、サブクラス化の方が適切なオプションでしたPreferenceManager。ただし、バッキングストレージは常に同じままであるため、この特定のケースではカテゴリを使用する方が望ましいと思います。

PreferenceManagerカテゴリを使用すると、それを設定するコードとともに、シングルトンを変更しないでおくことができます。をサブクラス化する場合は、生の の代わりに をPreferenceManager使用するように、シングルトンをインスタンス化するコードに追加の変更を加える必要があります。カテゴリの場合、この変更は不要です。PreferenceManagerSubclassPreferenceManager

于 2013-08-24T00:56:03.860 に答える