2011-05-19 6 views
1

シングルトンはクラス(静的)メソッドよりも利点があるjava/cpp環境から来ていますが、私の過去の観察結果から、クラスターメソッドよりもシングルトンを使用する利点はありません。誰かがこれを確認することができますか、シングルトンがクラスメソッドでできないものを実行することができます(シングルトンが実際には「マルチトン」の場合を除いて)。シングルトンはObjective-cコンテキストで意味を持ちますか?

EDIT:シングルトンと

答えて

1

シングルトンはObjective-Cで使用されています.Cocoaフレームワークでは、シングルトンの実装は、 NSApplication、NSDocumentController、およびNSWorkspaceはシングルトンの例です

シングルトンをクラスメソッドに使用する利点は、シングルトンの動作がサブクラスを作る。これはまれですが、NSDocumentControllerまたはNSApplicationのサブクラスを作成するアプリケーションもあります。 (たとえば、NSDocument -documentClassForType:メソッドをオーバーライドすることができます)。

+0

回答ありがとうございましたDietrich、良い点と良い例。ただし、カテゴリを使用してクラスメソッドを「オーバーライド」することもできます。 'NSApplication'、' NSDocumentController'は、そうすることを選ぶ理由がなければならないと思う良い例です。いずれにしても、私が見つけようとしていることは、シングルトンの代わりにクラスメソッドを使用し始めるなら、後でトラブルに遭うでしょうか?これは良い決断ですか?私はクラスメソッドのようなものは、絶対に追加のセットアップが必要ないし、よりよく見ているので、確かに良いです。答えにもう一度感謝します。 –

+0

カテゴリを使用してメソッドをオーバーライドすると、元のメソッドはどのように呼び出されますか?サブクラス化すると、 'super'を使うことができます。 –

+0

確かに、あなたは正しいです、あなたはそれを拡張することはできません。 –

関連する問題