Please enable JavaScript.
Coggle requires JavaScript to display documents.
CAPITULO 1 (Catálogo de patrones de diseño (Chain of responsability (crea…
CAPITULO 1
Catálogo de patrones de diseño
Chain of responsability
crea una cadena con objetos receptores
hasta que sea tratada por algún objeto
Command
encapsula una petición en un objeto
Builder
separa la construcción de un objeto complejo de su representación
Composite
combina objetos en estructura de árbol
para representar jerarquías
Bridge
desacopla una abstracción de su implementación
Decorator
añade responsabilidades a un objeto
proporciona flexibilidad a la herencia
Adapter
convierte la interfaz en lo que los clientes esperan
Facade
define una interfaz que hace que el subsistema sea fácil de usar
Abstract Factory
crea familias de objetos que dependen entre sí
Factory Method
Permite que una clase delegue en sus subclases la creación de objetos
Flyweight
permite la eficiencia de un gran número de objetos
Interpreter
usa un intérprete para interpretar sentencias del lenguaje
Iterator
accede a los elementos sin exponer su representación interna
Mediator
define un objeto que encapsula cómo interactúan
un conjunto de objetos
Memento
representa y externaliza el estado interno de un objeto
Observer
define una dependencia de uno-a-muchos
Prototype
los objetos se instancian prototipicamente
Proxy
Proporciona un sustituto para controlar el acceso a éste
Singleton
Garantiza que una clase sólo tenga una instancia
proporciona un punto de acceso global a ella
State
permite que el objeto modifique su comportamiento
cada vez que cambie su estado interno
Strategy
permite que un algoritmo varíe independientemente de quien lo use
Template Method
define en una operación el esqueleto de un algoritmo
Visitor
define una nueva operación sin cambiar los elementos que los opera
Descripción de los patrones de diseño
se emplea un formato consistente
cada patrón se divide en secciones de acuerdo a la siguiente plantilla
haciéndolos más fáciles de
comprender
usar
aprender
Nombre patrón y clasificación
transmite su esencia, es vital
forma parte de nuestro vocabulario de diseño
Propósito
responde a las cuestiones
¿Qué hace este patrón de diseño?
¿En qué se basa?
¿Qué diseño lo resuelve el problema?
Motivación
escenario que ilustra un problema de diseño
cómo el patrón lo resuelve
Aplicabilidad
en qué situaciones se puede aplicar el patrón de diseño
Estructura
representación gráfica de las clases del patrón
usando técnicas de modelos de objetos
Participantes
clases y objetos participantes en el patrón de diseño
Colaboraciones
cómo los participantes colaboran en sus responsabilidades
Consecuencias
ventajas e inconvenientes y resultados de usar el patrón
Implementación
dificultades a la hora de aplicar el patrón
Código de ejemplos
fragmentos de código en C++ o Smalltalk
Patrones relacionados
que tipo de patrones están relacionados, principales diferencias
Diseñar para el cambio
dependencia de las representaciones
dependencias algorítmicas
dependencias de plataformas
fuerte acoplamiento
dependencia de operaciones concretas
añadir funcionalidad mediante la herencia
crear un objeto especificado
incapacidades para modificar las clases
Cómo resuelven los patrones los problemas de diseño
Encontrar los objetos apropiados
lo mas difícil es descomponer un sistema en objetos
entran en juego muchos factores
rendimiento, evolución
reutilización , etc.
dependencia, flexibilidad
encapsulación, granularidad
un objeto encapsula procedimientos
se los conoce como métodos
realizan operaciones de peticiones de clientes
ayudan a identificar abstracciones menos obvias
y los objetos que las expresan
Determinar la granularidad de los objetos
varían en tamaño y número
pueden representar desde el hardware hasta aplicaciones completas
patrones que se encargan
Flyweight
Abstract Factory, Builder
Facade
Visitor, Command
Especificar las interfaces de los objetos
Interfaz
conjuntos de las signaturas definidas
son fundamentales en los sistemas orientados a objetos
Tipo
nombre para denotar una determinada interfaz
Signatura
son los parámetros y el valor de retorno de la operación
la operación que se ejecuta depende tanto de la petición como el objeto
el enlace dinámico
significa que no se implementa hasta la ejecución
Especificar las implementaciones de los objetos
queda definida por su clase
representación interna del objeto
operaciones que puede realizar
la clase especifica los datos
los objetos se crean instanciando una clase
el objeto es una instancia de la clase
Herencia de clases
Cuando una subclase hereda una clase padre
Herencia de clases frente a herencias de interfaces
es importante entender la diferencia entre
clase de un objeto
define el estado interno del objeto y sus operaciones
tipo
sólo se refiere a su interfaz
peticiones a las cuales puede responder
diferencias entre
herencia de clases
define la implementación de un objeto en términos de otro objeto
herencia de interfaces
describe cuando se puede usar un objeto en lugar de otro
Programar para interfaces, no para implementación
no se deben declaran las variables como instancias de clases concretas
los patrones de creación aseguran que el sistema
se escriba en términos de interfaces
no de implementaciones
Poner a funcionar los mecanismos de reutilización
Herencia frente a tipos parametrizados
define un tipo sin especificar los otros tipos que usa
Delegación
hace mas fácil combinar comportamientos en tiempo de ejecución
Herencia frente a composición
herencia
no se pueden cambiar las implementaciones heredadas de las clases padres
composicion
se define dinámica mente en tiempos de ejecución
Cómo usar un patrón de diseño
Defina las clases
establecer
variables de instancia
referencias de objetos
relaciones de herencia
Defina nombres específicos de la aplicacion
usar responsabilidades y colaboraciones
con cada operación como guía
Elija nombres significativos
no deben ser abstractos
incorporar el nombre del participante en el de la aplicación
Implemente las operaciones de responsabilidades
ofrece pistas que nos guiarán en la implementación
Examine la sección Código de Ejemplo
estudiar el código ayuda a implementar el patrón
Vuelva atrás y estudie las secciones
asegurarse de entender las clases y objetos del patrón
Lea el patrón de principio a fin para tener una perspectiva
prestar atención a las secciones
aplicabilidad
consecuencias
Cómo seleccionar un patrón de diseño
estudie como se interrelacionan los patrones
se encuentra el patrón apropiado
estudie patrones de propósito similar
ayudan a comprender similitudes y diferencias ente patrones
hojee las secciones propósito
para encontrar similitudes con nuestro problema
examine una causa de rediseño
ver los patrones que ayuden a evitar rediseño
patrones que solucionan problemas de diseño
dan soluciones a problemas de diseño
piense que debería ser variable en su disseño
pensar en qué puede ser cambiado sin necesidad de rediseñar
Los diseñadores experimentados ya utilizan
patrones antiguos lo que les facilita el trabajo
los novatos les cuesta entender el diseño de patrones
los patrones de diseño ayudan a un diseñador
a lograr un buen diseño más rapidamente
Que es un patrón de diseño
"Cristopher Alexandre" lo define como:
cada patrón describe un problema en nuestro entorno
así como la solución a ese problema
se aplica millones de veces
sin hacer lo mismo dos veces
Un patrón tiene 4 elementos esenciales
El problema
describe cuando aplicar el patrón
describe problemas concretos de diseño
por ejemplo: cómo representar algoritmos con objetos
explica el problema y su contexto
La solución
no describe un diseño o una implementación
es una plantilla que se aplica en situaciones diferentes
describe los elementos que constituyen el diseño
relaciones
responsabilidades
colaboraciones
Nombre del patrón
describe en una o dos palabras un problema de diseño
junto con sus soluciones y consecuencias
nos permite diseñar con mayor abstracción
encontrar buenos nombres ha sido es la parte mas dificil
al desarrollar nuestro catálogo
se incrementa el vocabulario de diseño
Consecuencias
son los resultados así cómo
ventajas y inconvenientes de aplicar el patrón
son fundamentales para:
evaluar alternativas de diseño
costes y beneficios de aplicar el patrón
incluye un impacto en:
flexibilidad, extensibilidad y portabilidad de un sistema
de un modo implícito nos ayudan a:
evaluarlas
comprenderlas
Estructuras que relacionan tiempo de ejecución y tiempo de compilación
la estructura del código se fija en tiempo de ejecución
tiempo de compilación tiene que ver con los objetos que se comunican entre si
Programación de aplicación
toolkits
clases re utilizables para proporcionar funcionalidad
frameworks
conjunto de clases que constituyen un diseño reutilizable
los patrones describen diseños orientados a objetos
las soluciones son en lenguajes orientados a objetos
C++
Smalltalk
Patrones de diseño en el MVC de Smalltalk
MVC consiste en tres tipos de objetos
Vista representación en pantalla
su apariencia refleja el estado del modelo
cada vista se actualiza a si misma
la relación de vista-controlador es un patrón Srategy
Strategy es un objeto que representa un algoritmo
se puede cambiar de controlador para mostrar otra vista
Controlador define el modo en que la interfaz
reacciona con el usuario
Modelo es el objeto de la aplicación
las principales relaciones en MVC se dan entre patrones de diseño
Composite
Strategy
Observer
Organización del catálogo
se los organiza de acuerdo a dos criterios
Propósito
refleja que hace el patrón
Estructural
clase u objetos
Comportamiento
interacción entre clases y objetos
Creación
crean objetos
Ámbito
Clases
relaciones entre clases y subclases
a través de herencia
Objetos
relaciones entre objetos
son dinámicos
FONSECA JUAN
FLORES LUIS
INTEGRANTES