Arquitectura de ISValidator

En esta página se describe la filosofía y arquitectura de desarrollo que se aplica en las rutinas ISValidator.

Si quiere ver ejemplos comentados de las rutinas, dispone de la página de ejemplos para ello

Filosofia

La filosofía con que se ha diseñado ISValidator gira entorno a la información y su tratamiento. Pensemos en una información atómica ,un dato , como puede ser el nombre de una persona que se introduce en nuestro sistema, bien sea mediante una interface de consola, web, etc...

Sobre este dato normalmente se debe realizar una serie de procesos: debe ser modelizado, validado y procesado, tanto si es correcto como si no.

A la hora de realizar la gestión de un dato determinado, normalmente, este no es único, suele haber un grupo de datos , como puede ser el primer apellido, el segundo, etc...

Normalmente una determinado dato puede sufrir una validación por diferentes restricciones , pongamos por ejemplo que a un nombre se le puede aplicar la restricción de que sea de un determinado tamaño y no contenga números. Son dos restricciones, la longitud y el tener solo numeros, sobre una única información.

También se suele dar el caso de que las restricciones que tiene que cumplir un dato estén condicionadas por otros datos. Pongamos por ejemplo el típico cuestionario en el que si se contesta a una respuesta afirmativamente se debe contestar una serie de preguntas, que si se ha contestado negativamente no hay que contestar. En este caso las restricciones que tienen que cumplir estas otras preguntas varían según la pregunta que discrimina.

Si la información a validar proviene de una interacción con el usuario y esta no es válida normalmente habrá de hacerse saber a este para su corrección.

Componentes

Para modelizar esta situación las rutinas ISValidator se basan en una serie de componentes:

  • Restricciones que se modelizan como Check.
  • Datos que se modelizan como Data.
  • Grupos de Datos que se modelizan como DataGroup.
  • Procesos de la información que se modelizan como ErrorDo y OkDo.

Puede encontrar una información más detallada de cada componente en las páginas dedicadas a cada tipo de componente: Check , Data , DataGroup , ErrorDo , OkDo