PureMVCでは、ビューを制御するキーボードリスナーを配置するのに正しい場所はどこですか?

StackOverflow https://stackoverflow.com/questions/4808763

質問

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

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

ありがとう!

役に立ちましたか?

解決

あなたが言ったように、あなたは2つの選択肢を持っています - 何人かのリスナーをview.mxmlクラスに入れたり、リスナーを何らかの一般的なクラスに置くことです。

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

2-ndアプローチはもっと興味深いです。キーボードイベントを聞いて、多くのビューがある場合は、次のようなものの使用を開始します

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;
      ...
  }
}

多くのキーボードイベントを聴くと、これはひどいようです。しかし、あなたがデザインパターンに慣れているなら、あなたは使用できます 状態パターン.

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top