patrones de diseño de software

Páginas: 19 (4503 palabras) Publicado: 29 de abril de 2014
PATRONES DE DISEÑO DE SOFTWARE










ÍNDICE


Contenido









INTRODUCCION
Los patrones son soluciones a problemas típicos en el desarrollo y diseño de software. Los objetivos principales de los patrones de diseño son, entre otros:
Evitar buscar soluciones a problemas típicos ya solucionados anteriormente.
Estandarizar el modo en que se realiza el diseño.Facilitar el aprendizaje de la solución a dichos problemas a los nuevos diseñadores.
Así pues, el uso de patrones de diseño no es obligatorio, pero sí recomendable siempre que se puedan aplicar sin forzar su uso.
Clasificación de patrones
Los patrones se clasifican en 3 tipos diferentes:
Patrones creacionales: Resuelven problemas relacionados con la creación de instancias de objetos. Por ejemplo,el patrón Singleton se encarga de que sólo pueda existir una instancia de la clase a la que es aplicado.
Patrones estructurales: Se centran en problemas relacionados con la forma de estructurar las clases. Por ejemplo, el patrón Composite permite trabajar con listas de objetos (u objetos compuestos) como si de un solo objeto se tratase.
Patrones de comportamiento: Permiten resolver problemasrelacionados con el comportamiento de la aplicación, normalmente en tiempo de ejecución. Por ejemplo, el patrón Strategy proporciona diferentes métodos (o algoritmos) para resolver un mismo problema, pudiendo decidir en tiempo de ejecución cuál de ellos utilizar.






Patrones de Diseño Software de Creación
Abstract Factory
Este es un patrón creacional, el problema que intenta solucionares: la creación de diferentes familias de objetos relacionados o que dependen entre sí, sin especificar sus clases concretas. Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia concreta que se está usando.
Se aplica principalmente a objetos. Tratan con las relaciones entre objetos, que pueden cambiarse entiempo de ejecución y son muy dinámicos.

Clases que participan
FabricaAbstracta: Declara una interfaz para operaciones que crean objetos producto abstractos.
FabricaConcreta: Implementa las operaciones para crear objetos producto concretos.
ProductoAbstracto: Declara una interfaz para un tipo de objeto producto.
ProductoConcreto: Define un objeto producto para que sea creado por la fábricacorrespondiente. Implementa la interfaz ProductoAbstracto.Cliente: Sólo usa interfaces declaradas por las clases.
Ventajas
Hace fácil el intercambio de familias de productos Porque en el momento de que requiera lo único que se debe hacer, es cambiar o mejorar una línea de código fomenta la consistencia entre productos.
Encapsula la responsabilidad de creación porque aísla las clases concretas yayuda a mantener un control sobre las clases de datos.
Desventajas

Puede ser difícil incorporar nuevos tipos de datos.
Pero esto se puede tener solución, pasando un parámetro a los métodos de creación de productos, pero con esto sacrificaría seguridad.
Patrones relacionados 
Singleton: es implementado en la fábrica concreta.
Prototype: es implementado al definir fábricas extensibles yevitar la dependencia de la interfaz de las fábricas de los nuevos productos se puede tener un catálogo de prototipos.
Factory Method: la fábrica abstracta deja que las subclases creen los productos redefiniendo las operaciones de creación.

Estructura

Codigo ejemplo
public abstract class AbstractFactory {
public abstract Disco comprarDisco();
public abstract Memoria comprarMemoria();
}public class AmdFactory extends AbstractFactory{
public Disco comprarDisco(){
return new DiscoAmd(); 
}
public Memoria comprarMemoria(){
return new MemoriaAmd(); 
}
}
public class IntelFactory extends AbstractFactory {
public Disco comprarDisco() {
// TODO Auto-generated method stub
return new DiscoIntel();
}
public Memoria comprarMemoria() {
// TODO Auto-generated method stub...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Patrones de Diseño de Software
  • Arquitectura De Software Y Patrones De Diseño
  • Patrones de diseño de software
  • Patrones De Diseno
  • Patrones De Diseño
  • Patrones de Diseño
  • patrones de diseño
  • Patrones De Diseño

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS