PatronesDeDise O JonaAlvarez
Páginas: 10 (2354 palabras)
Publicado: 8 de agosto de 2015
Y EJEMPLO EN JAVA.
JÓNATHAN ÁLVAREZ GONZÁLEZ.
COD: 1087995688.
UNIVERSIDAD TECNOLÓGICA DE PEREIRA.
PROGRAMA INGIENERÍA DE SISTEMAS Y COMPUTACIÓN.
IS563. PROGRAMACIÓN ORIENTADA A OBJETOS
PEREIRA, MARZO 2010.
PATRONES DE DISEÑO: APLICABILIDAD
Y EJEMPLO EN JAVA.
JÓNATHAN ÁLVAREZ GONZÁLEZ.
COD: 1087995688.
MONOGRAFÍA:
PATRONES DE DISEÑO.
INGENIERO:
ÁNGELAUGUSTO AGUDELO ZAPATA.
UNIVERSIDAD TECNOLÓGICA DE PEREIRA.
PROGRAMA INGIENERÍA DE SISTEMAS Y COMPUTACIÓN.
IS563. PROGRAMACIÓN ORIENTADA A OBJETOS
PEREIRA, MARZO 2010.
CONTENIDO.
Tema
Página.
1. Patrones Creacionales
4
1.1 Método de Fabricación (Factory
Method)
4
1.2 Singleton.
5
2. Patrones Estructurales
6
2.1 Adaptador (Adapter)
6
2.2 Decorador (Decorator)
7
3. Patrones deComportamiento
8
3.1 Estados (States)
8
3.2 Observador (Observer)
11
Bibliografia.
13
PATRONES DE DISEÑO.
Los patrones de diseño son un conjunto de estrategias o buenas prácticas que facilitan el
trabajo a la hora de desarrollar una aplicación en específico. Coloquialmente “Los
patrones de diseño son el esqueleto de las soluciones a problemas comunes en el
desarrollo de software.”
Se caracterizanpor ser una agrupación de soluciones a problemas no triviales,
generalizados y aplicables para cualquier lenguaje de programación que trabaje el
paradigma Orientado a Objetos y que de ésta forma son implementaciones reutilizables y
efectivas, pues ya se ha comprobado la solución de los problemas de forma satisfactoria.
Los patrones de diseño se dividen en tres principales grupos clasificados segúnsus
propósitos, son conocidos además en honor a sus cuatro autories como la banda de los
cuatro (Gang of Four – GoF), los patrones se clasifican en:
1. Patrones Creacionales.
2. Patrones Estructurales.
3. Patrones de Comportamiento.
Por intereses propios del curso, sólo serán reseñados dos patrones de cada clase.
1. PATRONES CREACIONALES.
Estándares de creación de clases, abstrayendo la forma enla que se crean los objetos.
1.1 Factoría (Factory).
Este patrón se basa en el concepto que un objeto especializado se encarga de instanciar
otros diferentes objetos y estos proporcionan la interfaz del objeto recibido.
Supóngase un mall de comidas, de ellos existen de diferentes especializaciones, comidas
típicas, comida rápida, comidas internacionales. Llevando esto a la programación
orientada aobjetos obtenemos algo cómo esto:
public abstract class MallComidas {
public abstract String darComida();
}
public class ComidaTipica extends MallComidas {
@Override
public String darComida() {
return "Bandeja paisa.";
}
}
public class ComidaRapida extends MallComidas {
}
public String darComida() {
return "Combo Hamburguesa y papas fritas agrandadas.";
}
4
Si quisiéramos ahora poner enfuncionamiento nuestro pequeño programa deberíamos
hacer algo como esto:
public class Main {
public static void main( String[] args ) {
MallComidas cena = null;
//Capricho es un dato ingresado por el cliente
if( capricho.equals("comida tipica") ) {
cena = new ComidaTipica();
}
else if ( capricho.equals("comida rapida") ) {
cena = new ComidaRapida();
}
System.out.println( cena.darComida() );
}
}
Laimplementación como tal no tiene nada erróneo. Procedamos ahora a construir nuestra
Factoría y definiremos de nuevo nuestra clase Main.
public class Factoria {
public static MallComidas crearComida( String capricho ) {
if( capricho.equals("comida tipica") ) {
return new ComidaTipica();
}
else if ( capricho.equals("comida rapida") ) {
return new ComidaRapida();
}
return null;
}
}
public class Main{
public static void main( String[] args ) {
MallComidas cena = Factoria.crearComida( "comida tipica" );
System.out.println( cena.darComida() );
}
}
Lo que hemos logrado ahora es un código mucho más legible, donde tal como se ve, un
patrón Factory elige el objeto a instanciar y esconde éste código, promoviendo el
encapsulamiento de las partes más variables del sistema; la clase principal/ foco...
Leer documento completo
Regístrate para leer el documento completo.