Patrones

Páginas: 16 (3792 palabras) Publicado: 18 de noviembre de 2013
Reutilización del Software

Patrones de Diseño

1

Introducción
• El diseño OO es difícil y el diseño de software
orientado a objetos reutilizable lo es aún más.
• Los diseñadores expertos no resuelven los
problemas desde sus principios; reutilizan
soluciones que han funcionado en el pasado.
– Se encuentran patrones de clases y objetos de
comunicación recurrentes en muchos sistemasorientados a objetos.
– Estos patrones resuelven problemas de diseño
específicos y hacen el diseño flexible y reusable.
2

Definición de un patrón
Alexander(arquitecto/urbanista)

Cada patrón describe un problema que
ocurre una y otra vez en nuestro
entorno y describe también el núcleo de
la solución al problema, de forma que
puede utilizarse un millón de veces sin
tener que hacerdos veces lo mismo.

3

Definición de un patrón de diseño
[Gamma]
Un patrón de diseño es una descripción
de clases y objetos comunicándose
entre sí adaptada para resolver un
problema de diseño general en un
contexto particular.

4

Introducción

• Es un tema importante en el desarrollo de
software actual: permite capturar la experiencia
• Busca ayudar a la comunidad dedesarrolladores
de software a resolver problemas comunes,
creando un cuerpo literario de base
– Crea un lenguaje común para comunicar ideas y
experiencia acerca de los problemas y sus soluciones

• El uso de patrones ayuda a obtener un software
de calidad (reutilización y extensibilidad)
5

Elementos de un patrón
• Nombre: describe el problema de diseño.
• El problema: describe cuándo aplicarel
patrón.
• La solución: describe los elementos que
componen el diseño, sus relaciones,
responsabilidades y colaboración.

6

Más información en...

• Desing Patterns. E. Gamma, R. Helm, R.
Johnson, and J. Vlissides. Design Patterns.
Addison Wesley, 1995.
• Patterns Home Page: http://hillside.net/patterns/
• Thinking in patterns with java
http://www.mindview.net/Books/TIPatterns/7

Clasificación de los patrones
• Según su propósito:
– De creación: conciernen al proceso de creación
de objetos.
– De estructura: tratan la composición de clases
y/o objetos.
– De comportamiento: caracterizan las formas en
las que interactúan y reparten responsabilidades
las distintas clases u objetos.

8

Clasificación de los patrones
GoF (gang of Four) [Gamma]
PropósitoCreación

Estructural

Comportamiento

üAdapter

Interpreter
Template Method

Ámbito
Clase

üFactory Method

üAdapter
Abstract Factory

Objeto

Builder
Prototype

üSingleton

Bridge

üComposite
Decorator

üFacade
Flyweight
Proxy

Chain of Responsability
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor

ü
ü
ü

Además: PATRONES DEDISEÑO FUNDAMENTALES

9

Patrones de diseño fundamentales
Son patrones que no aparecen la tabla definida
por Gamma, pero se utilizan habitualmente:

• DELEGATION
• INTERFACE
• MARKER INTERFACE

10

Patrón DELEGATION
Utilidad:
Cuando se quiere extender y reutilizar la
funcionalidad de una clase SIN UTILIZAR LA
HERENCIA
Ventajas:
• En vez de herencia múltiple
• Cuando una claseque hereda de otra quiere
ocultar algunos de los métodos heredados
• Compartir código que NO se puede heredar
11

Patrón DELEGATION
El problema

Clase A

Clase B

a1()
….

b1(),b2()
….

Clase C
a1(), b1(), b2()
….
- El lenguaje utilizado NO PERMITE HERENCIA MÚLTIPLE
- La clase C no desea TODOS los métodos de B
12

Patrón DELEGATION
La solución

Clase A

Clase Ba1()
….

b1(), b2()
….
usa

Clase C
a1(), b1()
….

El método b1() habrá que
añadirlo a C

NO USAR HERENCIA
SINO LA RELACIÓN “USA”

13

Patrón DELEGATION
Implementación

class C extends A {
B objB;
C ( ) { // En la constructora se puede crear obj. de B
objB=new B();
}
void b1( ) { objB.b1( );}
….
14

Patrón INTERFACE
Utilidad y Ventajas

Utilidad
Definir un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • patrones
  • El patrono
  • PATRONO
  • Patrón
  • Patrones
  • El Patron
  • Patrones
  • patrones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS