Usuario:Vichock/Front controller

El patrón de diseño de software Front controller está listado en varios catálogos de patrónes y está relacionado al diseño de aplicaciones web. Es un controlador que "manipula todas las peticiones a un sitio web», el cual es una estructura útil para desarrolladores de aplicaciones web para conseguir flexibilidad y reuso sin redundancia de código.[1]

Instrucción

editar
 
Estructura típica del front controller

Los front controllers son usados a menudo en aplicaciones web para implementar flujos de trabajo. Aunque no es estrictamente requerido, es mucho más fácil de controlar la navegación a través de un conjunto de páginas relacionadas desde un front controller –por ejemplo, las de una compra en línea– que hacer páginas individuales para la navegación.

El front controller puede ser implementado como un objeto Java, o como un script en lenguajes como PHP, Perl6, Python o Ruby que serán llamados en cada petición del la sesión web. Este script, por ejemplo un index.php, manejaría todas las tareas que sean comunes a la aplicación o el framework, como el manejo de sesiones, caching, y los filtros de entrada. Basado en una petición concreta, se podrían instanciar otros objetos y llamar métodos para manejar la o las tareas particulares requeridas.

La alternativa a un front controller podrían ser scripts individuales como login.php y order.php que podrían cada uno satisfacer un tipo de petición. Cada script podría duplicar código u objetos que son comunes a todas las tareas. Sin embargo, cada script podría tener mayor flexibilidad para implementar la tarea particular requerida.

Ejemplos

editar

Varios frameworks para aplicaciones multicapa implementan el patrón front controller, entre ellos:

Implementación

editar

Para entender mejor el patrón front controller, hay un ejemplo que puede ser implementado en Java. .[3]​ Puede ser definido en 3 componentes:

  1. Mapeo de XML: archivos que peticiones de mapa a la clase que manejará el procesamiento de petición.
  2. Procesador de petición: utilizado para tratar el procesamiento de petición (y modificando o recuperando el modelo apropiado).
  3. Director de flujo: primero conseguir la petición y la producción del procesamiento, entonces determinar qué mostrará en la página próxima.

Referencias

editar
  1. Fowler, Martin. «Front Controller». Consultado el September 26, 2017. 
  2. «Web MVC framework». Spring Framework Reference Documentation. Pivotal Software. Consultado el September 26, 2017. 
  3. «Front Controller Pattern». 

[[Categoría:Patrones de diseño]]