Escolar Documentos
Profissional Documentos
Cultura Documentos
132567
Software Embebido
Dependencias entre Software y Hardware
Benjamn Zamudio Olgun
Introduccin
Reduce el acoplamiento.
Permite variar la representacin interna de estructuras compleja, respetando
la interfaz comn de la clase Builder.
Permite un mayor control en el proceso de creacin del objeto. El Director
controla la creacin paso a paso, solo cuando el Builder ha terminado de
construir el objeto lo recupera el Director.
Diagrama
Cliente: Parte del programa que utilizar el resto de clases. Podra ser el
archivo .fla principal, por ejemplo.
Director: Clase que decide qu constructor se utiliza y cuando se debe
construir el producto. Se correspondera con la clase Cocina de nuestro
ejemplo.
IConstructor: Interfaz que define las funciones de creacin de cada parte del
producto y la funcin de obtencin del producto resultante. En nuestro
ejemplo se correspondera con Cocinero y definira las funciones
hacerMasa():void, utilizarSalsa():void y hacerRelleno():void.
Constructor1 y Constructor2: Clases encargadas de crear las partes del
producto. En nuestro ejemplo, seran CocineroHawai y CocineroPicante.
Producto: Clase del producto en s. Se correspondera con la clase Pizza de
nuestro ejemplo.
Factory Method
Clasificacin: Generacional
Se conoce como Virtual constructor
Hace que un diseo sea ms personalizable. El mtodo de fbrica slo
requiere una nueva operacin.
Cundo debe ser utilizado?
Una clase no puede anticipar el tipo de objeto que debe crear y quiere que
sus subclases especifiquen dichos objetos
Hay clases que delegan responsabilidades en una o varias subclases.
Una aplicacin es grande y compleja y posee muchos patrones creacionales
Estructura
El patron prototipo propone hacer "reciclaje" de herencia, para evitar que dos
objetos que difieren en pocas caracteristicas, tengan que estar definidas
como dos clases concretas diferentes.
Este patron clona un objeto previamente instanciado, tomando cada una de
las caracteristicas del objeto inicial.
En que momentos se usa?
Singleton: Clase que se quiere instanciar una sola vez. Se corresponde con la
clase VentanaAyuda de nuestro ejemplo.
USO DEL PATRON SINGLETON
Debe haber exactamente una instancia de una clase y debe ser accesible a los
clientes desde un punto de acceso conocido.
package singleton;
public class MySingleton {
protected static MySingleton InstanciaUnica= null;//unica instancia
protected String variable;
public static MySingleton getInstance() {
if(InstanciaUnica == null) {
synchronized (MySingleton.class) {
InstanciaUnica = new MySingleton();
}
}
return InstanciaUnica;
}
//Constructor privado para prohibir la creacin de instancias de esta clase.
private MySingleton() {
variable ="PROGRAMACION AVANZADA";
}
public void setSingleton(String value) {
this.variable = value;
}
public void printSingleton() {
System.out.println(variable);
}
}
CLASE DE PRUEBA
package singletonClases;
import singleton.MySingleton;
public class ClaseDePrueba {
public static void main(String[] args) {
MySingleton mySingleton = MySingleton.getInstance();
mySingleton.printSingleton();
mySingleton.setSingleton("Patron creacional Singleton!!");
MySingleton segundoSingleton = MySingleton.getInstance();
segundoSingleton.printSingleton();
}
}
https://sites.google.com/site/juliocsierraguc/patrones-creacionales