O padrão Interpreter é usado para interpretar ou avaliar expressões em uma linguagem simples. Ele define uma gramática para expressões e um mecanismo para interpretar essas expressões. É útil quando você precisa processar ou avaliar comandos ou regras repetidamente, como em calculadoras ou linguagens de script.
Exemplo de Código em C#:
// Interface para expressões
public interface IExpressao
{
    int Interpretar();
}
// Expressão para números
public class Numero : IExpressao
{
    private int _valor;
    public Numero(int valor)
    {
        _valor = valor;
    }
    public int Interpretar()
    {
        return _valor;
    }
}
// Expressão para adição
public class Adicao : IExpressao
{
    private IExpressao _esquerda;
    private IExpressao _direita;
    public Adicao(IExpressao esquerda, IExpressao direita)
    {
        _esquerda = esquerda;
        _direita = direita;
    }
    public int Interpretar()
    {
        return _esquerda.Interpretar() + _direita.Interpretar();
    }
}
// Expressão para subtração
public class Subtracao : IExpressao
{
    private IExpressao _esquerda;
    private IExpressao _direita;
    public Subtracao(IExpressao esquerda, IExpressao direita)
    {
        _esquerda = esquerda;
        _direita = direita;
    }
    public int Interpretar()
    {
        return _esquerda.Interpretar() - _direita.Interpretar();
    }
}
class Program
{
    static void Main(string[] args)
    {
        // Criar expressões: (10 + 5) - 3
        IExpressao expressao = new Subtracao(
            new Adicao(new Numero(10), new Numero(5)),
            new Numero(3)
        );
        // Interpretar e exibir o resultado
        int resultado = expressao.Interpretar();
        Console.WriteLine($"Resultado da expressão: {resultado}"); // Saída: Resultado da expressão: 12
    }
}
Explicação do Código:
Neste exemplo, temos uma interface IExpressao, que define o método Interpretar. As classes Numero, Adicao e Subtracao implementam essa interface para representar diferentes tipos de expressões. O código cria uma expressão que soma 10 e 5, depois subtrai 3, e então interpreta o resultado. O padrão Interpreter permite que você construa e avalie expressões de forma flexível.
Conclusão:
O padrão Interpreter é útil quando você precisa definir uma gramática e interpretar expressões repetidamente. Ele é aplicado em situações como calculadoras, processadores de linguagens de script ou sistemas que precisam avaliar regras ou comandos.
Código fonte: GitHub
    
Top comments (0)