В Puremvc, где правильное место для прослушивателя клавиатуры, который управляет видом?

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

Вопрос

Я получаю некоторый опыт 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 +.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top