jueves, 28 de mayo de 2009
Interprete

Interprete se usa para definir un lenguaje para representar expresiones regulares que representen cadenas a buscar dentro de otras cadenas. Además, en general, para definir un lenguaje que permita interpretar las distintas instancias de una familia de problemas.

Características generales de este patrón:

Nombre:

Interprete.

También conocido como:

Interpreter.

Propósito:

Dado un lenguaje, define una representación para su gramática junto con un intérprete que usa la representación para interpretar sentencias del lenguaje.

Aplicabilidad:

Este patrón se utiliza generalmente cuando:

· Hay un lenguaje sencillo de interpretar.

· Los problemas recurrentes se puede expresar en ese idioma. 

· La eficiencia no es la cuestión principal. Hay un grupo de objetos en un sistema que potencialmente pueden responder para el mismo tipo de mensaje.

Estructura:

Participantes:

· AbstractExpression: Declara las operaciones de interpretación que las especializaciones han de implementar.

· TerminalExpression: Representan a los símbolos terminales.

· NonterminalExpression: Representan a las producciones de la gramática.

· Context: Contiene la información global del proceso de interpretación.

· Client: Construye el árbol sintáctico de una frase del lenguaje e invoca la operación de interpretación.

Consecuencias:

· Es fácil cambiar y ampliar la gramática.

· Resulta fácil implementarla.

· Las gramáticas complejas son difíciles de mantener.

· Añadir nuevos modos de interpretar expresiones.

Patrones relacionados:

· Composite.

· Flyweight.

· Iterator.

· Visitor.

Etiquetas: , ,

 
posted by Camilo Mojica at 22:47 | Permalink |


0 Comments: