次のようなクラスメソッドを使用することで、メモリ/パフォーマンスの欠点があるのか、それとも一般的な欠点があるのか疑問に思いました。
+ (void)myClassMethod:(NSString *)param {
// much to be done...
}
また
+ (NSArray*)myClassMethod:(NSString *)param {
// much to be done...
return [NSArray autorelease];
}
特にメモリ管理(iPhone)を扱う必要がある環境では、クラスメソッドに多くの機能を配置すると便利ですが、通常、何か便利な場合に問題がありますか?
例としては、非常に単純な機能を備えた多数のクラスで構成された考え抜かれたWebサービスがあります。すなわち
TomorrowsXMLResults;
TodaysXMLResults;
YesterdaysXMLResults;
MondaysXMLResults;
TuesdaysXMLResults;
.
.
.
n
これらを大量にWebサービスクラスに収集し、Webサービスクラスをインスタンス化して、このクラスのメソッドに「結果」クラスのクラスメソッドを呼び出させます。クラスは単純ですが、大量のXmlを処理し、多くのオブジェクトをインスタンス化します。
クラスメソッドが存在するのか、それともスタックやメモリ内でインスタンス化されたオブジェクトへのメッセージとは異なる方法で処理されるのかを尋ねていると思いますか?
それとも、それらは単にインスタンス化され、舞台裏で再びプルダウンされるので、数行のコードを節約する方法にすぎませんか?