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.