-1

NSNotificationCenter私はしばらくの間Cocoaアプリを開発してきましたが、シングルトンの「パターン」と通信のためのの使用に関する概念的な質問があります。

アプリにユーザーのクレデンシャルを保存する責任があるクラスがあるとします。それを呼びましょうUserAccountControllerこのようなクラスは、ログイン/ログアウト操作を実行し、関心のあるオブジェクトにそのような操作が実行されたことを通知するパブリックメソッドを公開します(たとえば、タブバーアプリケーションでは、ユーザーがログアウトしたときにすべてのUIViiewControllerを更新したい)。

UserAccountController私の意見では、アプリケーションに複数のオブジェクトを含めることは意味がありません。また、2番目のUserAccountControllerオブジェクトもに通知を投稿するNSNotificationCenter可能性があります。これにより、そのような通知を受信するように登録されたオブジェクトに問題が発生する可能性があります。

この状況を考えると、2つの質問があります。

  1. のようなクラスで使用するパターンUserAccountController
  2. アプリケーションの情報フローにNSNotificationsを使用するクラスは、必然的にシングルトン「パターン」を実装する必要がありますか?

Appleのクラスを分析したところ、質問2)は理にかなっていることがわかりましたが、シングルトンの「パターン」は避けたいと思います。

手がかりはありますか?

4

1 に答える 1

1

ユーザー資格情報をオブジェクトに保存しUserAccountModelます。そのオブジェクトは、特に私の現在の状態、つまりログイン状態を保持します。そのステータスが変化するたびに、その事実に通知を投稿します。私UIApplicationDelegateはそのモデルへの参照を保持します。ここで、ユーザーがログイン資格情報を入力するビューがあるとしますLoginView。私のMVCはUserAccountModel-> LoginViewController->になりLoginViewます。

于 2011-04-11T19:43:39.230 に答える