Patron Interpreter - tectijuana/javapdd16a-Archived GitHub Wiki

Interpreter

Interpreter es un patrón de comportamiento, los patrones de comportamiento proporcionan soluciones para organizar las interacciones y para repartir el procesamiento entre los objetos. Son un total de once: Chain of responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method y Visitor.

El patrón Interpreter proporciona un marco para representar mediante objetos la gramática de un lenguaje con el fin de evaluar, interpretándolas, expresiones escritas en este lenguaje.

Cuando Utilizarlo.

Este patrón se debe utilizar cuando hay un lenguaje que interpretar y se puede interpretar sus palabras como árboles sintácticos abstractos. Para ello, la gramática debe ser simple. Difícilmente el desarrollador utiliza este patrón en algún momento de su vida, lo que no quita que no sea un patrón utilizado. La situación ideal que se debe considerar para aplicar este patrón es que exista un lenguaje sencillo que pueda interpretarse con palabras. El ejemplo más claro es JAVA: este lenguaje permite escribir en archivos .java entendibles por humanos y luego este archivo es compilado e interpretado para que pueda ejecutar sentencias entendibles por una máquina.

Diagrama UML

  • AbstractExpression: declara una interfaz para la ejecución de una operación.
  • TerminalExpression: implementa una operación asociada con los símbolos terminales de la gramática
  • NonterminalExpression: implementa una operación de interpretación asociada con los símbolos no terminales de la gramática.
  • Context: contiene información global para el interprete.
  • Client: construye un árbol sintáctico abstracto que representa una sentencia particular en el lenguaje que la gramática define. El cliente construye una expresión

Ejemplo:

https://interpreterr.herokuapp.com/