Cairngorm IV: FrontController

El patrón FrontController está pensado para centralizar las invocaciones de lógica de la aplicación en un único lugar. Todo lo que se pueda hacer o se haga en una aplicación lo podremos ver desde el FrontController. Paralelamente, todas las acciones invocadas (ejecución de commands) está centralizada de forma que si los requerimientos lo demandasen se podría añadir funcionalidad transversal a ellos (HistoryManager, logging, etc.)

Paralelamente a esto, las invocaciones de commands (ejecución del método execute) no se hace directamente invocando el método execute como vimos en el último artículo, sino que se hace a través de un objeto Event. Por lo tanto la ejecución de una función se mapea contra un objeto, que es serializable y almacenable, facilitando por tanto su posterior re-invocación (acciones de rehacer y deshacer, volver atrás, paginado, etc).


A nivel implementacional nuestra aplicación sólo constará de un FrontController que implementará una Singleton, nuestro FrontController y deberá extender de la clase com.adobe.cairngorm.control.FrontController

Este FrontController actuará como un diccionario, cuando (y siguiendo el mecanismo que veremos enseguida) alguien diga “sayHello” se encargará de localizar el command pertinente y ejecutarlo (HelloWorldCommand).

Veamos un ejemplo implementacional del FrontController.

[ftf w=”500″ h=”280″]
package com.mif.cairngormTutorial1.control
{
import com.adobe.cairngorm.control.FrontController;
import com.mif.cairngormTutorial1.commands.HelloWorldCommand;

public class SampleFrontController extends FrontController
{
public static const SAY_HELLO:String = “sayHello”;

public function SampleFrontController()
{
this.addCommand (SAY_HELLO, HelloWorldCommand);
}
}
}[/ftf]

Ahora para ejecutar el command lo tendremos que hacer de la siguiente forma:

[ftf w=”500″ h=”400″]




[/ftf]

Lo primero que tenemos que hacer en una aplicación basada en Cairngorm es inicializar nuestro FrontController (en el caso del ejemplo SampleFrontController). Esto lo hacemos mediante mxml con el tag <control: SampleFrontController id=”frontController”/>

A partir de ahí cuando queremos invocar un command (fijémonos que el método invocador no sabe, a nivel implementacional, que se va a ejecutar un command) lo hacemos a través de un evento CairngormEvent. En este evento seteamos la propiedad type al valor que hemos configurado en nuestro FrontController.

Una vez ya tenemos el evento, lo lanzamos a través de CairngormEventDispatcher. Internamente la clase FrontController (super clase de nuestro SampleFrontController) suscribe nuestros commands a los eventos que indiquemos al hacer un addCommand. En el momento de suscribirse, el FrontController, se convierte en un listener.

Es importante destacar que lo único que tendremos que hacer cuando queramos implementar un nuevo caso de uso en nuestra aplicación es implementar un command y censarlo en el FrontController.

Xavi es un Technical Arquitect de Aplicaciones RIA basadas en la Plataforma Flash trabajando para Adobe en Londres. Especializado en aplicaciones colaborativas en tiempo real, e-learning y CMS (Content Management Systems) utiliza Flex, LCDS, BlazeDS, FMS y Java principalmente.

Sitio Web:http://www.code4net.com

4 Comentarios

  1. Adrián

    Creo que este framework es muy parecido a Guasax, sabrías decirme cuál es más potente actualmente, es que guasax tiene buena pinta pero el hecho de que lo haya desarrollado una sola persona de forma independiente no inspira demasiada confianza

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acerca de Made In Flex

Made In Flex es una comunidad de desarrolladores de Apache Flex creada en 2006.

Apache Flex, anteriormente conocido como Adobe Flex, es un SDK (kit de desarrollo de software) para crear aplicaciones enriquecidas - multiplataforma basadas en Adobe Flash donado por Adobe a la fundación Apache in 2011 y promocionado a proyecto de primer nivel en Diciembre de 2012.

Actualmente estamos cambiando muchos aspectos del sitio web para ofrecer un sitio útil para toda la comunidad que tenga en cuenta las necesidades actuales.

Últimas Fotos

Instalador de Apache Flex

Entrar o Registrase