В Puremvc, где правильное место для прослушивателя клавиатуры, который управляет видом?
-
24-10-2019 - |
Вопрос
Я получаю некоторый опыт PureMVC, и я хочу использовать команды клавиатуры для управления моим представлением. Остальная часть приложения не должна знать о том, что делает эта точка зрения.
Должен ли я поместить их непосредственно в представление, или они должны быть каким -то местом, и иметь уведомление о представлении с использованием уведомления, когда нажата клавиша?
Спасибо!
Решение
Как вы сказали, у вас есть две альтернативы - чтобы поставить некоторых слушателей в класс 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 +.