Usac

Solo disponible en BuenasTareas
  • Páginas : 5 (1203 palabras )
  • Descarga(s) : 4
  • Publicado : 14 de julio de 2010
Leer documento completo
Vista previa del texto
25/06/2010

• Basado en el capítulo 4 y 5 del libro Patterns in Java Volumen 1 de Mark Grand.

Patrones de diseño (1)
Ing. Luis Espino 2010

Patrones de diseño

Historia
• Originalmente fueron utilizados en el campo de arquitectura, a finales de los 70’s. • Cunningham y Beck desarrollaron cinco patrones para el diseño de interfaz de usuario en 1987. • Finalmente en 1994 se publicó unlibro de patrones de diseño por GoF.

• Son soluciones reutilizables para problemas recurrentes que se pueden encontrar durante el ciclo de desarrollo.

Tipos de patrones
• Existen muchos tipos, las cuatro familias principales son:
▫ ▫ ▫ ▫ Patrones fundamentales. Patrones creacionales. Patrones estructurales. Patrones de comportamiento

Patrones fundamentales

1

25/06/2010

Patronesfundamentales
• Son patrones fundamentales e importantes de conocer
▫ Delegación; interface; superclase abstracta; e interfaz y clase abstracta son patrones que demuestran como está organizada las relaciones entre clases. ▫ Inmutable, describe una vía para evitar errores y atrasos cuando múltiples objetos acceden al mismo objeto.

Patrones fundamentales
▫ Interfaz marcador describe la formade simplificar el diseño de clases que tienen un atributo constante booleano. ▫ Proxy, es la base para muchos patrones, comparten el concepto de que un objeto maneja el acceso de otro objeto de una forma transparente.

1. Delegación
• Se utiliza cuando se desea extender y reutilizar, pero la herencia no es necesaria. • La herencia es una forma común de extender y reutilizar la funcionalidad deuna clase, mientras que la delegación es una forma más general de extender el comportamiento que implica la invocación de un método de una clase.

Implicaciones
• La herencia es una relación estática, no cambia en el tiempo (comportamiento), la delegación sí. • La delegación impone menos estructura en las clases que la herencia. • La delegación puede ser menos conveniente que la herencia, porquerequiere más código de implementar.* • Mucha reutilización y extensión de clases no es apropiado a través de la herencia.

2

25/06/2010

Solución
• Utilizar la delegación para reutilizar y extender el comportamiento de una clase.

2. Interfaz
• Las instancias de una clase proveen datos y servicios a las instancias de otras clases, realizando a través de acceso a los datos y serviciosa través de una interfaz. • Define un comportamiento independiente de donde vaya a ser utilizado.

Implicaciones
• Si se necesita variar el tipo de objeto utilizado por otros objetos para un propósito particular sin hacer el objeto dependiente de cualquier otra clase. • Los constructores de la clase no pueden ser accedidos a través de la interfaz, porque las interfaces de Java no tienenconstructores. *

3

25/06/2010

Solución
• Para evitar que las clases tengan dependencias de otras clases por la relación usar, modelar esta relación a través de una interfaz

3. Interfaz marcada
• Este patrón se utiliza junto con clases utilitarias, utiliza el hecho que una clase implementa una interfaz para indicar semántica en los atributos de la clase. • Es muy útil cuando una claseutilitaria debe determinar algo acerca de objetos sin asumir que estos son una instancia de una clase.

Implicaciones
• Es posible que las clases utilitarias necesiten saber cosas acerca de la intención de uso de objetos, que puede ser falso o verdadero. • Las clases pueden implementar cualquier número de interfaces. • Algunos atributos acerca de la intención de uso de una clase puede cambiardurante el tiempo de vida de una clase. *

Solución
• Para que las instancias de clases de utilidad puedan determinar si las instancias de otra clase se incluyen en un clasificación sin clase de utilidad que tenga el conocimiento de otras clases, la clase de utilidad puede determinar si otras clases implementan una interfaz marcador.

4

25/06/2010

4. Proxy
• Es un patrón muy general que...
tracking img