segunda-feira, 30 de outubro de 2023

Design Patterns - Padrões Comportamentais - Interpreter

O padrão de design Interpreter, ou Intérprete em português, é um padrão comportamental que define uma gramática para uma linguagem e fornece um interprete para interpretar sentenças dessa linguagem. Ele é útil quando você precisa interpretar expressões complexas ou realizar operações em uma linguagem específica. O padrão Interpreter é composto por alguns elementos principais:

  1. Context (Contexto): Mantém as informações globais que são compartilhadas por todas as expressões da linguagem.

  2. AbstractExpression (Expressão Abstrata): É uma interface ou uma classe abstrata que define uma operação interpret() que é comum a todas as classes concretas de expressões.

  3. TerminalExpression (Expressão Terminal): Implementa a interface AbstractExpression e representa um terminal na gramática da linguagem. Um terminal é um elemento indivisível na expressão. Por exemplo, em uma linguagem que interpreta expressões matemáticas, um número ou uma variável pode ser um terminal.

  4. NonterminalExpression (Expressão Não Terminal): Também implementa a interface AbstractExpression e representa uma expressão composta por subexpressões. Um não terminal é uma expressão que pode ter subexpressões. Por exemplo, em uma expressão matemática, uma operação de adição pode ser uma expressão não terminal que tem duas subexpressões, uma para o operando da esquerda e outra para o operando da direita.

  5. Client (Cliente): Constrói a árvore de sintaxe abstrata (AST) usando objetos TerminalExpression e NonterminalExpression e chama a operação interpret() para realizar a interpretação.

O padrão Interpreter é útil em situações onde você precisa interpretar uma linguagem ou expressões complexas, como interpretadores de linguagens de programação, sistemas de consulta de banco de dados, compiladores, etc. Ele encapsula a lógica de interpretação em classes específicas, tornando mais fácil adicionar novas regras ou expressões à linguagem sem alterar o código do cliente.

Nenhum comentário:

Postar um comentário

Design Patterns - Padrões de Criação - Prototype

O padrão Prototype é um padrão de design que permite a criação de novos objetos a partir de um modelo existente, também conhecido como protó...