En Puremvc, ¿dónde está el lugar correcto para poner el oyente del teclado que controla una vista?
-
24-10-2019 - |
Pregunta
Estoy obteniendo una experiencia PuremVC y quiero usar comandos de teclado para controlar mi vista. El resto de la aplicación no necesita saber qué está haciendo esta opinión.
¿Debo ponerlos directamente en la vista, o deberían ser otro lugar y que la vista sea notificada utilizando una notificación cuando se presiona una tecla?
¡Gracias!
Solución
Como dijiste, tienes dos alternativas: poner a algunos oyentes en la clase View.MXML, o para poner a los oyentes en una clase general.
1 -ST: este parece ser el enfoque normal, no se necesitan más explicaciones, cada programador hará lo mismo.
El enfoque 2-ND es más interesante. Si tiene muchas vistas, escuchando eventos de teclado, comenzará a usar algo como
public class EnterButtonPressed extends SimpleCommand
{
function execute(...):void
{
//do something with the model, and then notify the view
}
}
Pero después de agregar más vistas que se supone que deben escuchar Enter
clave tu clase terminará así
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;
...
}
}
Lo que parece horrible si escucha muchos eventos de teclado. Pero si está familiarizado con los patrones de diseño, puede usar Patrón de estado.
Me ayudó mucho en mi último proyecto, cuando encontré muchos estados de vista diferentes escuchando muchos eventos.
También te recomiendo que eches un vistazo a Compañero Marco, es como eventos de enlace de datos de PurEMVC + + Flex.