PureMVCでは、ビューを制御するキーボードリスナーを配置するのに正しい場所はどこですか?
-
24-10-2019 - |
質問
私はいくつかの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 +データバインディング +フレックスイベントのようなものです。
所属していません StackOverflow