PDF de programación - Patrones de diseño orientado a objetos

Imágen de pdf Patrones de diseño orientado a objetos

Patrones de diseño orientado a objetosgráfica de visualizaciones

Publicado el 12 de Septiembre del 2020
572 visualizaciones desde el 12 de Septiembre del 2020
336,1 KB
54 paginas
Creado hace 16a (16/01/2008)
Patrones de diseño orientado a objetos

Programación Orientada a Objetos
Facultad de Informática

Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Universidad Complutense Madrid

Hacer software no es fácil

Diseñar software orientado a objetos es difícil, y diseñar
software orientado a objetos reutilizable es todavía más
difícil

Chapter 1: Introduction. Design Patterns, The Gang of Four

...y un software capaz de evolucionar tiene que
ser reutilizable (al menos para las versiones
futuras)

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

2

Diseñar para el cambio

El software cambia
Para anticiparse a los cambios en los requisitos hay que

diseñar pensando en qué aspectos pueden cambiar
Los patrones de diseño están orientados al cambio

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

3

Patrones

Cómo llegar a ser un maestro de ajedrez
Primero aprender las reglas del juego

nombres de las piezas, movimientos legales, geometría y orientación

del tablero, etc.

A continuación aprender los principios

relativo valor de las piezas, valor estratégico de las casillas

centrales, jaque cruzado, etc.

Sin embargo, para llegar a ser un maestro, hay que estudiar las

partidas de otros maestros
Estas partidas contienen patrones que deben ser entendidos,

memorizados y aplicados repetidamente

Hay cientos de estos patrones

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

4

Patrones

Cómo llegar a ser un maestro del software
Primero aprender las reglas

algoritmos, estructuras de datos, lenguajes de programación, etc.

A continuación aprender los principios

programación estructurada, programación modular, programación

OO, programación genérica, etc.

Sin embargo, para llegar a ser un maestro, hay que estudiar los

diseños de otros maestros
Estos diseños contienen patrones que deben ser entendidos,

memorizados y aplicados repetidamente

Hay cientos de estos patrones

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

5

Patrones

Christopher Alexander (1977):

Cada patrón describe un problema que ocurre una y otra vez en nuestro
entorno, y describe la esencia de la solución a ese problema, de tal modo que
pueda utilizarse esta solución un millón de veces más, sin siquiera hacerlo de
la misma manera dos veces

Un patrón es:

una solución a un problema en un contexto particular
recurrente (lo que hace la solución relevante a otras situaciones)
enseña (permite entender cómo adaptarlo a la variante particular del

problema donde se quiere aplicar)

tiene un nombre para referirse al patrón

Los patrones facilitan la reutilización de diseños y arquitecturas

software que han tenido éxito

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

6

Motivación de los Patrones

Capturan la experiencia y la hacen accesible a los no

expertos

El conjunto de sus nombres forma un vocabulario que
ayuda a que los desarrolladores se comuniquen mejor
Lenguajes de patrones

Ayudan a la gente a comprender un sistema más

rápidamente cuando está documentado con los patrones
que usa

Los patrones pueden ser la base de un manual de

ingeniería de software

Si el software se convierte en una ingeniería, las prácticas
exitosas deben ser documentadas sistemáticamente y
ampliamente difundidas

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

7

Motivación de los Patrones

Facilitan la reestructuración de un sistema tanto si fue o

no concebido con patrones en mente

Reutilización:

Los patrones de diseño soportan la reutilización de

arquitecturas software

Los armazones soportan la reutilización del diseño y del

código

El software cambia

Para anticiparse a los cambios en los requisitos hay que

diseñar pensando en qué aspectos pueden cambiar
Los patrones de diseño están orientados al cambio

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

8

Clasificación de patrones

Patrones arquitecturales

Expresan un paradigma fundamental para estructurar un

sistema software

Proporcionan un conjunto de subsistemas predefinidos, con

reglas y guías para organizar las relaciones entre ellos

Patrones de diseño

Compuestos de varias unidades arquitecturales más

pequeñas

Describen el esquema básico para estructurar subsistemas y

componentes

Patrones elementales (idioms)

Específicos de un lenguaje de programación
Describen cómo implementar componentes particulares de

un patrón

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

9

Ejemplos de patrones

Patrones arquitecturales

• Jerarquía de capas
• Tuberías y filtros
• Cliente/Servidor
• Maestro-Esclavo
• Control centralizado y

distribuido

Patrones de diseño

• Proxies
• Factorías
• Adaptadores
• Composición
• Broker

Patrones elementales

(idioms)

• Modularidad
• Interfaces mínimas
• Encapsulación
• Objetos
• Acciones y Eventos
• Concurrencia

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

10

Patrones y Armazones

Los patrones de diseño tienen descripciones más abstractas que

los armazones
Las descripciones de patrones suelen ser independientes de los

detalles de implementación o del lenguaje de programación (salvo
ejemplos usados en su descripción)

Los armazones están implementados en un lenguaje de

programación, y pueden ser ejecutados y reutilizados directamente

Los patrones de diseño son elementos arquitecturales más

pequeños que los armazones
Un armazón incorpora varios patrones
Los patrones se pueden usar para documentar armazones

Los patrones de diseño están menos especializados que los

armazones
Los armazones siempre se aplican a un dominio de aplicación

particular

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

11

Armazones (Frameworks)

Características

Un armazón ofrece un conjunto integrado de funcionalidad

específica de un dominio

• P.ej.: aplicaciones financieras, servicios de telecomunicación,

sistemas de ventanas, bases de datos, aplicaciones distribuidas,
núcleos de SO

Los armazones invierten el control en ejecución entre la

aplicación y el software sobre el que está basada

• El armazón determina qué métodos se invocan en respuesta a
eventos (se reusa el código del cuerpo principal y se escribe el
código al que llama)

Un armazón es una aplicación medio-acabada

• Las aplicaciones completas se desarrollan mediante herencia, e

instanciando componentes parametrizados del armazón

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

12

Armazones (Frameworks)

Diferencias con bibliotecas

LÓGI CA

ESPECÍFICA

DE LA

APLICACIÓN

invoca

BUCLE DE
EVENTOS

GUI

BASE DE
DATOS

MATH

ADTs

GUI

BUCLE DE
EVENTOS

invoca

MATH

ADTs

LÓGI CA

ESPECÍFICA

DE LA

APLICACIÓN

BASE DE DATOS

Arquitectura basada en

biblioteca de clases

Arquitectura basada en

armazón

reutilización de código reutilización de diseño y código

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

13

Ejemplo de patrón de diseño

Modelo-Vista-Controlador

Utilizado en Smalltalk [Krasner and Pope, 1988]
Distribución de responsabilidades
Utilizado en JFC (componentes Swing)

objetos de control,
eventos

Controlador

Vista

visualización
en pantalla

Modelo

aplicación

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

14

Descripción de patrones de diseño

Nombre e intención del patrón

Referencia al patrón
Incrementa el vocabulario de diseño

Problema y contexto

Cuándo aplicar el patrón

Solución

Estructura: elementos que conforman el diseño, sus relaciones,

responsabilidades y colaboraciones

• es una descripción abstracta de cómo una disposición de elementos

(clases y objetos) solucionan el problema

Se ilustra con un ejemplo de código

Consecuencias (positivas y negativas)

Necesidades (tiempo, memoria), aspectos de implementación y

lenguaje de programación, flexibilidad, extensibilidad, portabilidad

Patrones relacionados

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

15

Categorías de patrones de diseño

Patrones de creación

Tratan de la inicialización y configuración de clases y objetos

Patrones estructurales

Tratan de desacoplar interfaz e implementación de clases y

objetos:

• ¿Cómo se componen clases y objetos?

Patrones de comportamiento

Tratan de las interacciones dinámicas entre sociedades de

clases y objetos:

• ¿Cómo interaccionan y se distribuyen responsabilidades los

objetos?

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

16

Cómo seleccionar un patrón de diseño

Considerar cómo los patrones de diseño solucionan

problemas de diseño

Buscar las intenciones de cada patrón
Estudiar cómo se interrelacionan los patrones
Estudiar patrones de propósito similar
Examinar la causa de un rediseño
Considerar qué debería ser variable en un diseño

Juan Pavón Mestras
Facultad de Informática UCM, 2004

Patrones de creación

1
  • Links de descarga
http://lwp-l.com/pdf18194

Comentarios de: Patrones de diseño orientado a objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad