Interpreter

Interpreter

Patrón de diseño de comportamiento

El patrón de diseño interpreter es utilizado para evaluar un lenguaje definido como Expresiones, este patrón nos permite interpretar un lenguaje como Java, C#, SQL o incluso un lenguaje inventado por nosotros el cual tiene un significado; y darnos una respuesta tras evaluar dicho lenguaje.

Interpreter es uno de los patrones de diseño más complejos debido a que para su funcionalidad debe combinar técnicas de programación orientada a objetos avanzada y su interpretación puede ser algo confusa, las principales cosas con las que nos enfrentaremos son la Herencia, Polimorfismo y la Recursividad.

Estructura del patrón de diseño Interpreter
Estructura del patrón de diseño Interpreter

Los componentes del patrón Interpreter se explican a continuación:

  • Client:Actor que dispara la ejecución del interpreter.
  • Context:Objeto con información global que será utilizada por el intérprete para leer y almacenar información global entre todas las clases que conforman el patrón, este es enviado al interpreter el cual lo replica por toda la estructura.
  • AbstractExpression:Interface que define la estructura mínima de una expresión.
  • TerminalExpression:Se refiere a expresiones que no tienen más continuidad y al ser evaluadas o interpretadas terminan la ejecución de esa rama. Estas expresiones marcan el final de la ejecución de un sub-árbol de la expresión.
  • NonTerminalExpression:Son expresiones compuestas y dentro de ellas existen más expresiones que deben ser evaluadas. Estas estructuras son interpretadas utilizando recursividad hasta llegar a una expresión Terminal.
Diagrama de secuencia del patrón Interpreter
Diagrama de secuencia del patrón Interpreter
  1. El cliente crea el contexto para la ejecución del interpreter.
  2. El cliente crea u obtiene la expresión a evaluar.
  3. El cliente solicita la interpretación de la expresión al interpreter y le envía el contexto.
  4. La Expresión manda llamar a las Expresiones No Terminales que contiene.
  5. La Expresión No Terminal manda llamar a todas las Expresiones Terminales.
  6. La Expresión Raíz solicita la interpretación de una Expresión Terminal.
  7. La expresión se evalúa por completo y se tiene un resultado de la interpretación de todas las expresiones terminales y no terminales.

Ejemplo del mundo real

Mediante la implementación del patrón de diseño Interpreter construiremos una aplicación que interprete comandos SQL para realizar consultas sobre una Archivo de Excel, como si este se tratara de una base de datos relacional, en donde cada Hoja será vista como una tabla y las columnas de la hoja como columnas de la tabla. Para esto construiremos nuestra propia estructura de clases para representar el Lenguaje SQL, para finalmente ser interpretadas y nos arroje un resultado.

Descubre como el patrón Interpreter nos ayuda a resolver este problema.
Descubre como el patrón Interpreter nos ayuda a resolver este problema.

¿Sabes la importancia de los patrones de diseño?

Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.

🎉 Este video es parte del curso de patrones de diseño, inscríbete aquí 🎉

Acerca de este libro

Introducción a la arquitectura de software

Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:

Ver libro
Todos los derechos reservados ©