1

PureMVCの経験があり、キーボードコマンドを使用してビューを制御したいと思います。アプリケーションの残りの部分は、このビューが何をしているのかを知る必要はありません。

それらをビューに直接配置する必要がありますか、それとも別の場所に配置して、キーが押されたときに通知を使用してビューに通知する必要がありますか?

ありがとう!

4

1 に答える 1

2

あなたが言ったように、いくつかのリスナーをview.mxmlクラスに入れるか、リスナーをいくつかの一般的なクラスに入れるという2つの選択肢があります。

1-st-これは通常のアプローチのようです。これ以上の説明は必要ありません。すべてのプログラマーが同じことをします。

2番目のアプローチはより興味深いものです。多くのビューがあり、キーボード イベントをリッスンしている場合は、次のようなものを使い始めます。

public class EnterButtonPressed extends SimpleCommand 
{
  function execute(...):void
  {
    //do something with the model, and then notify the view
  }
}

しかし、キーをリッスンすることになっているビューを追加するとEnter、クラスはそのようになります

public class EnterButtonPressed extends SimpleCommand {
  function execute(...):void
  {
    switch(viewType)
    {
      case view1:
        //do something with the model, and then notify view1
        break;
      case view2:
        //do something with the model, and then notify view2
        break;
      case view3:
        //do something with the model, and then notify view3
        break;
      case view4:
        //do something with the model, and then notify view4
        break;
      ...
  }
}

多くのキーボードイベントを聞くと、これはひどいようです。ただし、パターンの設計に精通している場合は、State Patternを使用できます。

多くのイベントをリッスンしている多くの異なるビューステートに遭遇したとき、それは私の最新のプロジェクトで私を大いに助けました.

また、PureMVC + データ バインディング + Flex イベントのようなMateフレームワークもご覧になることをお勧めします。

于 2011-01-26T22:54:27.953 に答える