Patrones creacionales Flashcards

(21 cards)

1
Q

Builder - ¿Que soluciona el patron builder?

A

Cuando se tienen constructores con muchos parametros y cuando se necesitan otros objetos como parte de la construccion del objeto

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

Builder - ¿Cómo se implementa?

A

Se crea una clase interna dentro del objeto que queremos el builder y dentro de la subclase, en cada metodo se retorna una instancia del mismo builder. Hasta que se haga build(), el cual retorna la instancia de clase real.

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

Builder - Ejemplos de la vida real

A

StringBuilder
Java.util.Calendar

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

Simple Factory - ¿Qué soluciona el patron Simple Factory?

A

Cuando existen múltiples tipos que pueden ser instanciados y se selecciona basado en algún criterio. (Nombre, inicial, etc)

No incluido en la mayoria de fuentes como un patron de diseño

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

Simple Factory - ¿Cómo se implementa?

A

Primero debe existir herencia, Posterior a eso se crea una clase que contiene el metodo builder, si se le pasa un parametro, crea una instancia de uno de los hijos de la clase padre u otro.

No incluido en la mayoria de fuentes como un patron de diseño

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

Simple Facory - Ejemplos de la vida real

A

java.text.NumberFormat: Basado en el estilo que se le envía, crea una instancia de este tipo.

No incluido en la mayoria de fuentes como un patron de diseño

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

Factory Method - ¿Qué soluciona el patron Factory Method?

A

Cuando se tiene un programa en donde pueden haber múltiples clases que puedah hacer el manejo pero está fuertemente acoplado a un solo tipo.

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

Factory Method - ¿Cómo se implementa?

A

Se debe crear una clase que sea el creador (Creator) y luego implementar ese Creator en el que se sobreescribe el metodo y el retorno de cada clase concreta.

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

Factory Method - Ejemplos de la vida real

A

java.util.Collection - Tiene un metodo abstracto llamado iterator() que es al final del dia un Factory Method

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

Prototype - ¿Qué soluciona el patron Prototype?

A

Cuando al crear un objeto este tiene operaciones costosas ya sea porque se esta haciendo un calculo o tenemos que usar recursos externosde los que no tenemos controles.

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

Prototype - ¿Cómo se implementa?

A

Sobre la clase que se va a usar Prototype se debe implementar la interface Clonable y sobreescribir el metodo clone(), dentro del clone se retorna una instancia de la misma clase en el que se hace una copia. Se debe tener presente si se debe hacer un Shallow Copy o un Deep Copy.

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

Prototype - Ejemplos de la vida real

A

Object.clone() - No es un ejemplo claro pero en Java no se usa mucho este patron, depende de la implementacion de cada desarrollador.

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

Abstract Factory - ¿Qué soluciona el patron Abstract Factory?

A

Cuando se tienen dos o más objetos que funcionan juntos formando un conjunto y pueden haber multiples conjuntos que pueden ser creados por el cliente. (No necesariamente como una herencia)

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

Abstract Factory - ¿Cómo se implementa?

A

Se crea una interface Factory sobre la que se agregan los metodos que van a crear conjuntos especificos. En las clases que implementan la interface se crean para cada conjunto especifico.

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

Abstract Factory - Ejemplos de la vida real

A

java.xml.parsers.DocumentBuilderFactory - No es 100% igual pero este usa un metodo newInstancce para retornar el objeto factory.

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

Singleton - ¿Qué soluciona el patron Singleton?

A

Cuando se tiene un recurso que es usado por multiples partes del aplicativo y se necesita una sola instancia de la clase.

17
Q

Singleton - ¿Cómo se implementa?

A

La clase que va a ser Singleton debe tener el constructor privado y dependiendo si se desea hacer Lazy o Eager Singleton puede variar la implementación.

Eager se inicializa en la creación de la clase. Lazy, se valida en un metodo si ya existe una instancia, si existe la retorna, si no la crea.

18
Q

Singleton - Ejemplos de la vida real

A

java.lang.Runtime - Maneja Eager Singleton.

19
Q

Object Pool - ¿Qué soluciona el patron Object Pool?

A

Cuando el costo de crear una instancia de una clase es alto y se necesita una gran cantidad de objetos para esa clase por una corta duración.

No incluido en la mayoria de fuentes como un patron de diseño

20
Q

Object Pool - ¿Cómo se implementa?

A

Se debe crear una clase que es el Object Pool y dentro debe proveer dos metodos para obtener el objeto del pool y otro para retornarlo al pool, adicionalmente se debe tener control del cache que sea thread-safe.

No incluido en la mayoria de fuentes como un patron de diseño

21
Q

Object Pool - Ejemplos de la vida real

A

java.util.concurrent.ThreadPoolExecutor
org.apache.commons.dbcp.BasicDataSource - Es una libreria externa de Java que usa connection pooling. (getConnection() y close()).

No incluido en la mayoria de fuentes como un patron de diseño