tecnología de programacióndcm/tdp/downloads/clases/2019-2do... · 2019-09-26 · departamento de...

25
Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Tecnología de Programación Martín L. Larrea Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Upload: others

Post on 16-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Tecnología de Programación

Martín L. Larrea

Departamento de Ciencias e Ingeniería de la ComputaciónUniversidad Nacional del Sur

Page 2: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Patrones GoF

PROPÓSITO

Chain of Responsibility

Command Iterator MediatorMemento FlyweightObserver

State Strategy

Visitor

Adapter Bridge

Composite Decorator

FacadeProxy

Abstract Factory Builder

PrototypeSingleton

OBJETO

InterpreterTemplate Method

Adapter Factory MethodCLASE

SCOPE

COMPORTAMIENTOESTRUCTURALCREACIONAL

Page 3: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Abstract Factory

Fábricas

Productos

Page 4: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Visitor

Visitantes

Visitados

Page 5: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Visitor

la casa dice: burns.visit(this)

casa.accept(burns)

le pedimos al visitado que acepte el visitante al aceptar, el visitado le pide al visitador que “pase” a esta casa

...ahora el visitante puede acceder a la

casa y hace su tarea

Page 6: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Template Method

Sin especificar

se implementa en base a las

operaciones abstractas

se implementan las

operaciones pendientes

Page 7: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Strategy

Page 8: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

State

Abstracción del concepto de “estado”

Handle depende del estado

Page 9: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Observer

Subject administra observadores

observa el Subject

concreto y actúa según sus objetivos

notifica a todos los observer (Update)

Page 10: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Memento

“Fotografía” del estado del Originator

crea un Memento

(una “selfie”)

restaura su estado

según un Memento

Page 11: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Iterator

IteradorEstructura a recorrer

Es la estructura la que crea

su iterador para ser recorrida

Page 12: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Mediator

Mediador entre colegas

Page 13: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Chain of Responsability

Realiza una

tarea puntualRealiza una tarea

puntualy ordena al sucesor a realizar su propia tarea

Page 14: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Command

acciones encapsuladas

en un objeto

Invoca las acciones de los comandos

eventualmente la acción puede actuar sobre otros

objetos (“Receiver”)

Page 15: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Flyweight

objetos administrados para compartir

= +

fábrica de objetos

Page 16: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Interpreter

Similar a las Gramáticas

Page 17: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Composite

un objeto simple

un objeto compuesto...

...por objetos simples o

compuestos

Page 18: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Decorator

un objeto simple

un decorador de

objetos simples o

decoradores

Page 19: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Adapter

interfaz que

queremos usar

interfaz que debemos usar

(es la que entiende Client)

Page 20: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Bridge

abstracciones

paulatinasimplementaciones

paulatinas

éstas abstracciones... ... se implementan de

éstas formas posibles

Page 21: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Facade

“ventanilla de atención”

deriva luego los pedidos a

quien corresponda

Page 22: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Builder

Construyen partes

Page 23: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Prototype

Objetos que saben

clonarse a si mismos

usa un prototipo para obtener varios

objetos iguales

Page 24: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Singleton

el único objeto está

confinado aquí

Page 25: Tecnología de Programacióndcm/tdp/downloads/Clases/2019-2do... · 2019-09-26 · Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Visitor

Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur

Factory Method

operación que devuelve un

objeto Producto

...acá decidimos qué

producto creamos