Versioni
| Conosciuto anche comeNo ha altri nomi. IntentoIl design pattern Interpreter include la capacità di interpretare elementi di un linguaggio in un programma perché definisce una rappresentazione per la grammatica del linguaggio a beneficio di un interprete che usa la rappresentazione per interpretare frasi prodotte in quel linguaggio. Il design pattern Interpreter è complesso. Le classi derivate da AbstractExpression sono definite a design-time attraverso l'ereditarietà quindi questo design pattern è classificato rispetto allo scopo (vedi ClassificazioneDeiDesignPattern#ClassiOggetti) come rivolto alle classi. Rispetto al fine questo design pattern è classificato tra i ClassificazioneDeiDesignPattern#Comportamentali. Diagramma UML
Un'altro diagramma equivalente qui . MotivazioneQuando un problema particolare si presenta spesso con un certo numero di varianti può essere conveniente descrivere il problema con un linguaggio (le classi derivate da AbstractExpression e organizzate in TerminalExpression e NonterminalExpression) e risolvere i vari casi con un interprete del linguaggio (Client). Ciò si ottiene applicando il design pattern Interpreter. Esempi d'uso in .NETNessun esempio. Note sulla implementazione in .NETDel codice .NET di esempio è disponibile qui . Relazione con altri design patternIl PatternFlyweight mostra come condividere i simboli terminali. Il PatternComposite si applica all'albero astratto della sintassi. Il PatternIterator permette di attraversare l'albero astratto della sintassi. Il PatternVisitor può essere usato per i comportamenti di ogni espressione del linguaggio. Vedi la mappa della RelazioneTraDesignPattern. ApprofondimentiIl design pattern Interpreter è conveniente quando:
Rende facile definire la grammatica, cambiarla e aggiungerci nuove espressioni mentre rende difficile gestire la grammatica quando diventa complessa. Domande di approfondimento
Link | UGIdotNETWikiUGIdotNETWiki è il WikiWiki italiano dedicato a .NET Se è la prima volta che senti parlare di Wiki, leggi il BenvenutoAiVisitatori e WikiInUnMinuto, oppure il ManualePassoPassoDelWiki. Argomenti Recenti | ||||||||||||||||||||||||||||||||||||||
| © 2008 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali | ||||||||||||||||||||||||||||||||||||||||