Patrones estructurales Flashcards

(10 cards)

1
Q

Adapter - ¿Qué problema resuelve el patron Adapter?

A

Cuando se esta usando un objeto que tiene cierta funcionalidad que el cliente necesita pero el código del cliente no puede usar el objeto porque el objeto esperado tiene otra interface.

Es conocido como Wrapper

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Adapter - ¿Cómo se implementa?

A

Se debe crear una interface con los metodos que va a usar el cliente, posteriormente hay dos formas de implementar adapter. La primera es extender la clase original e implementar la interface, entonces se sobreescriben los metodos y dentro de cada metodo se llama al de la clase original.
La otra implementación es solo implementar la interface y crear un atributor de la clase original, se crea una instancia nueva de esa clase y entonces se va a llamar este desde cada metodo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Adapter - Ejemplos de la vida real

A

java.io.InputStreamReader/java.io.OutputStreamWriter - usan el patron Adapter, adaptan de InputStream/OutputStream a objetos de la interface Reader/Writer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Bridge - ¿Qué problema resuelve el patron Bridge?

A

Cuando se tienen abstracciones que están generalmente acompladas entre sí con herencia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Bridge - ¿Cómo se implementa?

A

Se debe separar en una clase abstracta “Abstraction” la cual es la operacion completa. Luego, en una interface “Implementor” se crean los pasos que se separan de la función, en la implementación de esa interface se agrega el codigo. Finalmente, en “Abstraction” se tiene un atributo que es de tipo “Implementor” y allí se llaman las funciones creadas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Bridge - Ejemplos de la vida real

A

java.sql.DriverManager y java.sql.Driver - Entre ellos utilizan Bridge. DriverManager es el Abstractor y Driver es el Implementor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Decorator - ¿Qué problema resuelve el patron Decorator?

A

Cuando se quiere mejorar el comportamiento de un objeto existente de forma dinamica (En tiempo de ejecución).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Decorator - ¿Cómo se implementa?

A

En primer lugar, debe haber herencia. Si no hay herencia, se debe crear una interface que tenga los metodos basicos de la clase. Luego se crea una clase Decorator que implementa la interface y tiene una referencia de la otra clase (la clase normal). Dentro del decorator se colocan las funciones extra que se quieran agregar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Decorator - Ejemplos de la vida real

A

java.io.BufferedOutputStream - Decora cualquier objeto java.io.OutputStream y agrega buffering a la operación de escritura del archivo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Composite - ¿Qué problema resuelve el patron Composite?

A

Cuando se quiere tratar objetos que estan formados en una estructura de arbol de forma similar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly