2011-03-09 20 views
0

私はAppDelegateをアプリケーションの心臓部として使用している(実際のUIApplication代理人は別として)多くの場所を読んできました。カスタム代理人

カスタムデリゲートクラスを作成してコードをモジュール化しておくことは賢明でしょうか。

たとえば、さまざまなテキスト入力をフォーマットする必要がある場合は、Formatterデリゲートクラスを作成し、フォーマットする必要のあるテキスト入力オブジェクトにデリゲートを設定しますか?

それは意味がありますか?

+0

テキストフォーマッタにデリゲートデザインパターンが必要な理由がわかりません。あなたは結果としてフォーマットされたテキストを返すクラスメソッドへの呼び出しを使用するだけではありません。 – Robert

+0

私はシナリオとして純粋な例だけを使用しています。 –

答えて

1

あなたが読んだ記事のポイントは、「アプリケーションのすべてのアプリケーションロジックを委任しないでください」です。アプリケーションデリゲートの責任は、ビューやデータフロー、ネットワークコールを管理するのではなく、アプリケーションの適切な部分に通知することによって、アプリケーションライフサイクルの重要なイベントを軽量に処理することです。たとえば、application:didFinishLaunchingWithOptions:の代理人では、通常、ルートコントローラのビューをウィンドウに追加すると、このウィンドウがアクティブになり、他のすべてがコントローラに残ります。

+0

したがって、IBActionsとIBOutletsをアプリケーションデリゲートに入れても問題ありませんか? –

+0

新しく作成されたアプリを見てみると、アプリデリゲートにはすでにいくつかの 'IBOutlet'があることに気付くでしょう。あなたはそれを過度に使用しないでアプリケーションデリゲートでそれらを持つことができます。コントローラは、通常、コントロールなどのアクションを処理するためのより良い場所です。 – hoha