Interpreter: diferenças entre revisões
m Página marcada como sem notas, usando FastButtons |
Desfeita a edição 46857714 de Contreiras45 e adicionado as fontes |
||
Linha 17: | Linha 17: | ||
[[Ficheiro:Interpreter.png|miniaturadaimagem|331x331px|Representação da descrição acima.|nenhum]] |
[[Ficheiro:Interpreter.png|miniaturadaimagem|331x331px|Representação da descrição acima.|nenhum]] |
||
== Casos de uso == |
|||
* Formato das consultas em banco de dados especializados como em [[SQL]]. |
|||
* Formato de mensagens usados pelos protocolos de comunicação. |
|||
* Tradução/conversão de linguagens ou símbolos para outra linguagem como números romanos para números decimais. |
|||
* Uso em expressões regulares ou XML. |
|||
* Uso de interpretação de formato em datas como DD-MM-AAAA ou MM-DD-AAAA. |
|||
== Consequências == |
|||
* Baixa freqüência de uso. |
|||
* Fácil extensão ou alteração da gramática. |
|||
* Implementar uma regra gramatical é fácil. |
|||
* É possível adicionar várias vias de interpretação. |
|||
== Referência == |
== Referência == |
||
https://sourcemaking.com/design_patterns/interpreter<ref>{{Citar web|url=https://sourcemaking.com/design_patterns/interpreter|titulo=Design Patterns and Refactoring|acessodata=2016-09-29|obra=sourcemaking.com}}</ref> |
https://sourcemaking.com/design_patterns/interpreter<ref>{{Citar web|url=https://sourcemaking.com/design_patterns/interpreter|titulo=Design Patterns and Refactoring|acessodata=2016-09-29|obra=sourcemaking.com}}</ref> |
||
http://www.dofactory.com/net/interpreter-design-pattern<ref>{{Citar web|url=http://www.dofactory.com/net/interpreter-design-pattern|titulo=Interpreter .NET Design Pattern in C# and VB - dofactory.com|acessodata=2016-10-02|obra=dofactory.com}}</ref> |
|||
http://alumni.media.mit.edu/~tpminka/patterns/Interpreter.html<ref>{{Citar web|url=http://alumni.media.mit.edu/~tpminka/patterns/Interpreter.html|titulo=(Tree-Structured) Interpreter Pattern|acessodata=2016-10-02|obra=[[MIT]]}}</ref> |
|||
Design Patterns: Elements of Reusable Object-Oriented Software<ref>{{Citar web|url=https://en.wikipedia.org/wiki/Design_Patterns|titulo=Design Patterns: Elements of Reusable Object-Oriented Software.|obra=Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides.}}</ref> |
|||
{{Esboço-prog}} |
|||
{{Padrões de projeto}} |
{{Padrões de projeto}} |
Revisão das 05h46min de 2 de outubro de 2016
Este artigo ou secção contém uma lista de referências no fim do texto, mas as suas fontes não são claras porque não são citadas no corpo do artigo, o que compromete a confiabilidade das informações. (Outubro de 2016) |
Definição
Interpreter é um dos padrões de projeto de software, famosos como "Design Patters", muito utilizado para a resolução de problemas quando a modelagem de sistemas ou softwares. Esse padrão esta incluso na categoria de Padrão Comportamental, ou seja, ele busca solucionar problemas de modelagem que tratam o comportamento de classes.
Intenção
Dada uma determinada linguagem, o padrão Interpreter define uma representação para sua gramática juntamente com um interpretador que usa a representação para interpretar sentenças na língua. Ou mapear um domínio para uma língua, a língua para uma gramática e a gramática para um projeto de design hierárquico orientado a objetos.
Problema
O padrão Interpreter busca em geral resolver o seguinte problema: que uma classe de problemas ocorre repetidamente em um domínio bem definido e bem compreendido. Se o domínio for caracterizado como uma linguagem, então os problemas poderiam ser facilmente resolvidos com uma interpretação da engine.
Estrutura
O padrão Interpreter sugere modelar o domínio com uma gramática recursiva. Cada regra na gramática é tanto um 'composite' (uma regra que referencia outras regras) ou um 'terminal' (uma folha/nó numa estrutura de árvore). O Interpreter baseia-se na travessia recursiva do padrão Composite para interpretar as 'sentenças' que ele deve processar.
Exemplo
O padrão Interpreter define uma representação gramatical de uma linguagem e um intérprete para realizar a interpretação da gramática. Os músicos são exemplos de intérpretes. O tom de um som e sua duração podem ser representados em uma notação musical em conjunto. Esta notação fornece a linguagem da música. Músicos tocando a música da partitura são capazes de reproduzir o tom original e duração de cada som representado.
Casos de uso
- Formato das consultas em banco de dados especializados como em SQL.
- Formato de mensagens usados pelos protocolos de comunicação.
- Tradução/conversão de linguagens ou símbolos para outra linguagem como números romanos para números decimais.
- Uso em expressões regulares ou XML.
- Uso de interpretação de formato em datas como DD-MM-AAAA ou MM-DD-AAAA.
Consequências
- Baixa freqüência de uso.
- Fácil extensão ou alteração da gramática.
- Implementar uma regra gramatical é fácil.
- É possível adicionar várias vias de interpretação.
Referência
https://sourcemaking.com/design_patterns/interpreter[1] http://www.dofactory.com/net/interpreter-design-pattern[2] http://alumni.media.mit.edu/~tpminka/patterns/Interpreter.html[3] Design Patterns: Elements of Reusable Object-Oriented Software[4]
- ↑ «Design Patterns and Refactoring». sourcemaking.com. Consultado em 29 de setembro de 2016
- ↑ «Interpreter .NET Design Pattern in C# and VB - dofactory.com». dofactory.com. Consultado em 2 de outubro de 2016
- ↑ «(Tree-Structured) Interpreter Pattern». MIT. Consultado em 2 de outubro de 2016
- ↑ «Design Patterns: Elements of Reusable Object-Oriented Software.». Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides.