PDF de programación - Bridge, Builder & Interpreter

Imágen de pdf Bridge, Builder & Interpreter

Bridge, Builder & Interpretergráfica de visualizaciones

Publicado el 16 de Abril del 2017
472 visualizaciones desde el 16 de Abril del 2017
512,6 KB
28 paginas
Creado hace 16a (30/10/2007)
Bridge, Builder &

Interpreter

Herrera, Mauricio

Navia, Andrés
Villalba, Yenny

Patron Bridge

Madre de los Patrones de Diseño

Patron Bridge
> Sinopsis

• Desacoplar

su
implementación para que ambas puedan
cambiar independientemente.

abstracción

una

de

> Contexto

Cuando una abstracción puede tener varias

posibles representaciones, una forma de
conseguirlo es a través de la herencia. Una
clase abstracta define la interface de la
abstracción y las subclases concretas.



3

Fuerzas

> Se quiere evitar un enlace permanente entre

una abstracción y su implementación.

> Tanto la abstracción como la implementación

deban ser extensibles mediante derivación
independientemente.

> Se quiere aislar a los clientes de cambios en
la implementación evitando recompilaciones
de código.

> Se quiera compartir una misma

implementación entre múltiples objetos.

4

Solucion (estructura)

5

Solucion (participantes)

> Abstracción: define la interfaz de la

abstracción y mantiene una referencia a un
objeto de tipo Implementador.

> AbstracciónRefinada: amplía la interfaz

definida por Abstracción.

> Implementador: define la interfaz para las

clases de implementación, que no tiene
porqué corresponderse exactamente con la
de Abstracción, suele ser de más bajo nivel.

> ImplementadorConcreto: implementa de

una forma concreta la interfaz de
Implementador.

6

Consecuencias

> Favorece la división en niveles de un
sistema. Los niveles superiores de un
sistema solo tienen que conocer la
abstracción y el implementador no el
implementador concreto.

> Ambas jerarquías pueden ampliarse

independientemente mediante herencia.

> Oculta a los clientes los detalles de las

implementaciones concretas.

7

Builder

Patrón de Diseño

Generalidades
> Clasificación

Creacional.
> Intención

Separar la construcción de un objeto complejo de su
representación de modo que en el mismo proceso de
construcción se pueda crear diferentes
representaciones.

> Aplicabilidad

• El Algoritmo para la creación de un objeto complejo debe
ser independiente de las partes que conforman el objeto y
de como estas están ensambladas.

• El proceso de construcción debe permitir diferentes
representaciones de los objetos que se construye.

9

Estructura

10

Colaboraciones

• El Cliente crea el objeto Director y lo configura con el

objeto constructor deseado.

• El Director notifica al constructor cuando parte del

producto se debe construir.

• El constructor maneja los requerimientos del director y

agrega partes al producto.

• El Cliente recupera el producto desde el constructor.

11

11

Consecuencias

• Permite variar las representaciones

internas de un producto.

• Aislamiento del código para

construcción y representación.

• Da mejor control sobre los procesos

de construcción.

12

Implementación

• Típicamente se debe crear una clase

Concrete Builder que defina
operaciones.
Interfaces de Ensamblaje y
Construcción de Productos.



• No se recomienda tener una clase

abstracta del Producto.

• Recomienda dejar algunos métodos

vacios en la clase Abstract Builder.

13

Usos Conocidos

> Usos Conocidos:
• Fue un patrón común para el lenguaje SmallTalk.
• Aplicaciones de procesamiento de texto RTF
• The Service Configurator Framework de la ACE

usa un constructor para construir componentes de
servicios de redes que son enlazados dentro de un
servidor en tiempo de corrida (run-time).

> Patrones Relacionados:
• Abstract Factory (87)

14

Ejemplo

15

Ejemplo

16

Ejemplo

17

Interpreter

Patrón de Diseño

Introducción
> Propósito

Dado un Lenguaje, definir la representación de
una gramática y un interpretador, que pueda
computar entradas de ese Lenguaje.

> Motivación

Existen problemas particulares que pueden

expresarse en función de algún Lenguaje.

> Primer Ejemplo: Expresiones Regulares

19

Descripción (1)

Este patrón utiliza una Clase para representar
cada Regla de la Gramática, siendo los
símbolos del
lado izquierdo de cada regla una
Instancia de la Clase.

20

20

Descripción (2)

Cada Expresión Regular definida por esta
gramática puede ser representada mediante un
Árbol Abstracto de Sintaxis que se elabora a
partir de cada Instancia de la Clase.
raining & (dogs | cats) *



21

21

Aplicabilidad

La Gramática es Simple. En caso contrario,

una mejor alternativa son los Parsers.

La Eficiencia no es uno de los aspectos
más importantes. En este caso hay que
traducir el input a una forma intermedia.

22

22

Estructura y Participantes

> El Cliente construye el Árbol Sintáctico Abstracto de
Expresiones No Terminales, e instancias de la Clase
Expresion Terminal. Luego inicializa el contexto e invoca al
Interpretador.

> Cada nodo correspondiente a Expresiones No Terminales

define al interpretador en función de subexpresiones.

> Las Operaciones en cada nodo utilizan el Contexto para
23

almacenar y acceder al Estado del interpretador.

23

Consecuencias

Gramáticas Fáciles de cambiar y extender.

Fácil Implementación.

Herencia.

Similitud.

Gramáticas Complejas son dificiles de Mantener.

Multi-Clases.

Agregar nuevas formas de interpretar las cosas es

Sencillo.

24

24

Implementación

Creación del Árbol Sintactico Abstracto: no se

especifica como crear el arbol.

Parser o Cliente

Definición de la operación del intérprete: no hay

que definirla en cada Clase.

Visitor

Compartimiento de símbolos Terminales.

Flyweight

25

25

Patrones Relacionados
> El Árbol Sintáctico Abstracto

es

una

Instancia de Composite.

> Flyweight

permite

compartir

símbolos

terminales del Árbol Sintáctico Abstracto .

> Se puede utilizar un Iterator para recorrer

la estructura.

> Visitor puede usarse para mantener el
comportamiento en cada nodo del Árbol
Sintáctico Abstracto en una Clase.

26

Ejemplos “Teóricos”

Gramáticas para computar las palabras de un

Lenguaje.

Evaluador de expresiones booleanas.

Búsquedas y comparaciones de cadenas.

27

27

Un Ejemplo más “Concreto”

Notas Musicales:
Un sonido y su duración puede ser representado

en notación musical en un pentagrama.

Esta notación provee el Lenguaje de la Música.
Los músicos que reproducen los sonidos de la
partitura pueden imitar la nota y la duración
original de cada uno de ellos representado.
.



28

28
  • Links de descarga
http://lwp-l.com/pdf3001

Comentarios de: Bridge, Builder & Interpreter (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad