0

これを行う方法はいくつかあります。

  • モデル内の単一のコントローラーへの参照を持ちます。モデルはこのコントローラーにイベントを送信し、他のコントローラーは階層を介してそれを認識し、ビューに渡します

  • 関心のあるすべてのコントローラーをモデルのリスナーにします (モデルにはリスナーのリストがあります)。ビューはコントローラーを介して変更を認識します

  • 関心のあるすべてのビューをモデルのリスナーにします。(ビューは変更を直接知るようになります)

    どれが適切で、その理由は何ですか?

4

1 に答える 1

1
  • あなたの3番目のオプションは古い学校です。ビューはモデルによって通知され、ビューはこれを処理する方法を決定します。大丈夫ですが、他のオプションの方が優れています。

  • 2番目のオプションは良さそうです。ビューはコントローラによって通知されます(ビューの更新とモデルの更新には別のコントローラがあることを確認してください)。そのため、コントローラーはイベントをビューに渡す前に変更できます。コントローラーは、ビューのデータをさらにカスタマイズできます。ビューはこれを行うべきではありません。仕事は何かを表示することだけです(オプション3では、ビューはこれを行う必要があります)。

  • 最初のオプションは、階層を持つオプション 2 の小さな改善です。複雑なシナリオでは、通過するイベントをフィルタリングする方が良い場合があります。しかし、通常、これはオーバーヘッドを爆破します。そのため、読みにくいです。

私はオプション 2 を選択します。これは、単純なコードと複雑なアクションのオプションの最良のトレードです。

于 2012-07-12T10:20:20.860 に答える