jueves, 5 de marzo de 2009

Formateo de fechas con DateFormat

DateFormat es una clase abstracta de la API estándar de Java que nos permite, entre otras cosas, pasar de objetos Date o Calendar a String con un formato determinado y realizar la operación inversa, crear objetos Calendar o Date a partir de una cadena que contiene la fecha.

De la esta clase hereda otra que realiza las operaciones de manera más sencilla: SimpleDateFormat. En el siguiente ejemplo se ha creado una clase llamada DateFormatter con dos métodos: uno para obtener un objeto Date a partir de un String y otro para realizar la operación inversa.

El patrón MVC

El patrón MVC (Model-View-Controller: Modelo-Vista-Controlador) es un patrón de arquitectura de software que separa el desarrollo de una aplicacíon en tres capas:
  • Modelo: encapsula los datos de la aplicación y la lógica para interactuar con ellos.
  • Vista: maneja la interacción con el usuario y la representación del modelo
  • Controlador: Es el puente entre las dos capas anteriores, se encarga de seleccionar el modelo solicitado por el usuario y seleccionar la vista adecuada para representarlo.
El siguiente diagrama muestra una representación de dicho modelo:



Cada una de estas capas a su vez se puede implementar usando uno o varios patrones de diseño según las necesidades. En el siguiente enlace se muestra una breve explicación de los patrones de diseño más importantes para cada una de las capas.

PATRÓN FRONT CONTROLLER (CONTROLADOR FRONTAL):

Con él se pretende crear un armazón estandar para administrar solicitudes.

El ciclo vital de una solicitud a través de un controlador frontal sigue los siguientes pasos:

  • El usuario emite una solicitud al controlador de la aplicación
  • La solicitud se divide en parámetros de formulario
  • La solicitud se autentifica
  • La acción solicitada se mapea a un recurso específico
  • Se crea un objeto de comandos para procesar la solicitud
  • La solicitud se envía a la página adecuada
  • La salida de la acción solicitada se muestra al usuario

ESTRATEGIAS:

1) AYUDA DE SOLICITUD: Esta estrategia implementa una clase que recibe como parámetro la solicitud y la procesa pudiendo realizar las funciones de autentificación de la solicitud (se comprueba que se ha recibido los parámetros esperados) y se mapea al objeto de comandos que realiza las operaciones solicitadas (nos devuelve el objeto Action).

2) CONTROLADOR Y COMANDO: Se crea un objeto comando que realiza las operaciones solicitadas. Nuestro objeto comando es el encargado de obtener el modelo, realizar las operaciones necesarias sobre el mismo y seleccionar la vista que va a representar el modelo.

PATRÓN DECORATING FILTER (FILTRO DECORADOR):

Este patrón nos permite modificar la solicitud antes de ser entregada al controlador correspondiente y modificar la respuesta antes de ser entregada al cliente. Entre los posibles usos de los filtros podemos destacar:

  • Registrar información importante sobre cada solicitud
  • Autentificar usuarios
  • Transformar los datos de entrada antes del procesamiento
  • Transformar los datos de la respuesta para un dispositivo específico
  • Validar los datos del formulario e interrumpir el procesamiento si fuera necesario
PATRÓN VIEW HELPER (AYUDANTE DE VISTA):

Este patrón especifica que se utilicen helpers para adaptar los datos del modelo a la capa de presentación de una aplicación. Estos helpers consisten en librerías de etiquetas (creadas por el propio programador o utilizando etiquetas proporcionadas por algún framework) o JavaBeans o ambos.