Patrón Interpreter

¿Qué es el Patrón Interpreter?

El Interpreter es un patrón de diseño de comportamiento que define una representación para una gramática y un intérprete para evaluar expresiones en ese lenguaje. Es útil cuando tienes un conjunto fijo de reglas que necesitan ser procesadas de manera repetitiva.

Código de Ejemplo en JavaScript

            
class Context {
  constructor(input) {
    this.input = input;
    this.output = 0;
  }
}

class Expression {
  interpret(context) {}
}

class AddExpression extends Expression {
  interpret(context) {
    const [a, b] = context.input.split("+").map(Number);
    context.output = a + b;
  }
}

class SubtractExpression extends Expression {
  interpret(context) {
    const [a, b] = context.input.split("-").map(Number);
    context.output = a - b;
  }
}

// Uso del patrón Interpreter
const context1 = new Context("5+3");
const addExpression = new AddExpression();
addExpression.interpret(context1);
console.log(`Resultado de 5+3: ${context1.output}`); // Resultado de 5+3: 8

const context2 = new Context("10-4");
const subtractExpression = new SubtractExpression();
subtractExpression.interpret(context2);
console.log(`Resultado de 10-4: ${context2.output}`); // Resultado de 10-4: 6

        

Casos de Uso

  • Interpretar expresiones matemáticas o lógicas.
  • Procesamiento de lenguajes específicos en compiladores.
  • Validación y evaluación de reglas en sistemas expertos.

Patrones Relacionados

  • Strategy: Proporciona diferentes implementaciones de un comportamiento específico.
  • Composite: Ayuda a trabajar con estructuras de árbol, útil en gramáticas complejas.
  • Visitor: Se utiliza para agregar operaciones sin modificar la estructura existente.
Whatsapp Mentores Tech