tecnología de programacióndcm/tdp/downloads/clases/2019-2do... · 2019-09-26 · departamento de...
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050116/5f4cc7ce8a881969057495b0/html5/thumbnails/25.jpg)
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