Mindmap
Patrones de diseño
Inhalt der Mindmap
Patrones de diseño
¿En que consiste?
- Son plantillas las cuales guían a la construcción de óptimo códigos
- Tipos
- Creacionales
- Factory Method
- es
- Forma de delegar la creación de objetos a las sub clases
- es decir
- No se crea un objeto a partir de una clase por medio del new, si no que, el patrón determina un método en una super clase y a partir de ello que las sub clases puedan especificar que tipo de objeto desean crear.
- Estructura
- se basa en
- Producto
- es
- Declara la interfaz común para los objetos que se crearan
- ¿En que momento utilizar el patrón?
- para
- Ahorrar recursos del sistema mediante la reutilización de los objetos ya creados
- Crear objetos de un tipo el cual no se conoce
- para
- ¿En que momento utilizar el patrón?
- Declara la interfaz común para los objetos que se crearan
- es
- Producto Concreto
- es
- Determina la interfaz del producto e indica específicamente el comportamiento
- Determina la interfaz del producto e indica específicamente el comportamiento
- es
- Creador
- es
- Declara el Factory Method el cual devuelve nuevos objetos del tipo del producto los cuales deben coincidir con la interfaz
- Declara el Factory Method el cual devuelve nuevos objetos del tipo del producto los cuales deben coincidir con la interfaz
- es
- Creadores concretos
- es
- Devuelven un tipo diferente de producto sobrescribiendo el Factory Method
- Devuelven un tipo diferente de producto sobrescribiendo el Factory Method
- es
- Producto
- se basa en
- Estructura
- No se crea un objeto a partir de una clase por medio del new, si no que, el patrón determina un método en una super clase y a partir de ello que las sub clases puedan especificar que tipo de objeto desean crear.
- es decir
- Forma de delegar la creación de objetos a las sub clases
- es
- Abstract factory
- Proporciona
- interfaz para crear objetos a partir de cada clase de la familia de productos relacionados sin especificar sus clases concretas
- objetivo
- garantizar que todos los productos creados pertenezcan a la misma familia
- Estructura
- se basa en
- Productos abstractos
- son
- interfaces para crear productos diferentes pero relacionados que hacen parte de una familia.
- Por ejemplo
- Silla y Sofa
- Silla y Sofa
- Por ejemplo
- interfaces para crear productos diferentes pero relacionados que hacen parte de una familia.
- son
- Productos concretos
- son
- ´Productos distintos de productos abstractos los cuales se agrupan en variantes
- Por ejemplo
- (silla/sofá) se implementan en (victoriano/moderno).
- (silla/sofá) se implementan en (victoriano/moderno).
- Por ejemplo
- ´Productos distintos de productos abstractos los cuales se agrupan en variantes
- son
- Fabrica abstracta
- son
- Indica un grupo de métodos para crear cada uno de los productos abstractos
- Indica un grupo de métodos para crear cada uno de los productos abstractos
- son
- Fabrica concreta
- es
- interfaz de la fabrica abstracta. Se define como crear productos, aquí cada fabrica se une con una variante especifica de los productos.
- interfaz de la fabrica abstracta. Se define como crear productos, aquí cada fabrica se une con una variante especifica de los productos.
- es
- Cliente
- su función es
- Adaptarse a cualquier variante fabrica o producto concreto utilizando siempre las interfaces abstractas.
- ¿En qué momento utilizar el patrón?
- cuando
- El código requiera de varias familiar de productos relacionados pero que no dependa de las clases concretas esos productos
- Una clase posee muchos tipos de productos es una forma desorganizada de manejar datos
- por ello
- este patrón nos permite, asignar una sola responsabilidad a cada clase.
- por ello
- cuando
- ¿En qué momento utilizar el patrón?
- Adaptarse a cualquier variante fabrica o producto concreto utilizando siempre las interfaces abstractas.
- su función es
- Productos abstractos
- se basa en
- Estructura
- garantizar que todos los productos creados pertenezcan a la misma familia
- objetivo
- interfaz para crear objetos a partir de cada clase de la familia de productos relacionados sin especificar sus clases concretas
- Proporciona
- Builder
- brinda la posibilidad de
- Producir distintos tipos y representaciones de un objeto manejando el mismo código de construcción
- es decir
- En lugar de crear un constructor grande dentro de la super clase el cual abarca todos los parámetros posibles lo que hace es dividir la construcción en pasos independientes
- Caraterísticas
- son
- Construir objetos de una clase en especifico
- Separa la construcción de un objeto complejo de su representación
- Proporciona un control más fino sobre el proceso de construcción
- Estructura
- se basa en
- Interfaz Constructora (Builder)
- consiste en
- Indica los pasos de construcción de productos los cuales garantizan que todos los constructores concretos tengan los mismos métodos básicos. En los diagramas se pueden usar la cantidad que sea necesaria.
- Indica los pasos de construcción de productos los cuales garantizan que todos los constructores concretos tengan los mismos métodos básicos. En los diagramas se pueden usar la cantidad que sea necesaria.
- consiste en
- Constructores Concretos
- define
- Como construir el producto siguiendo pasos específicos de los cuales no todos van a compartir la misma interfaz
- Como construir el producto siguiendo pasos específicos de los cuales no todos van a compartir la misma interfaz
- define
- Producto
- es
- Resultado final de la construcción el cual puede estar compuesto por múltiples partes unidas paso a paso durante el proceso
- Resultado final de la construcción el cual puede estar compuesto por múltiples partes unidas paso a paso durante el proceso
- es
- Directora
- su función es
- Controlar y organizar el orden de los pasos de la construcción del producto
- Controlar y organizar el orden de los pasos de la construcción del producto
- su función es
- Cliente
- su función es
- Decidir qué constructor concreto usar, asocia el constructor con la directora y solicita la construcción del producto final a través de la directora
- ¿En que momento utilizar el patrón?
- cuando
- Surge una larga lista de parámetros en el constructor y no todos son usados
- Larga lista de constructores con diferentes parámetros
- Objetos de la misma clase tienen diferentes características
- cuando
- ¿En que momento utilizar el patrón?
- Decidir qué constructor concreto usar, asocia el constructor con la directora y solicita la construcción del producto final a través de la directora
- su función es
- Interfaz Constructora (Builder)
- se basa en
- Estructura
- Construir objetos de una clase en especifico
- son
- Caraterísticas
- En lugar de crear un constructor grande dentro de la super clase el cual abarca todos los parámetros posibles lo que hace es dividir la construcción en pasos independientes
- es decir
- Producir distintos tipos y representaciones de un objeto manejando el mismo código de construcción
- brinda la posibilidad de
- Prototype
- Crea
- Objeto a partir de una clase con los valores clonados de otro objeto creador a partir de otra clase.
- es decir
- Se tiene un objeto con unos valores ya establecidos pero se requiere de uno nuevo pero con los mismos atributos sin la necesidad de codificar uno por uno.
- Componentes
- son
- Prototype
- es
- Interfaz que declara el método clone() para definir cómo clonar objetos.
- Interfaz que declara el método clone() para definir cómo clonar objetos.
- es
- ConcretePrototype
- su función es
- Implementar clone() y definir cómo copiar objetos concretos, ya sea con copia superficial o profunda
- Estructura
- consiste en
- Registro de prototipos
- Almacena una colección de objetos de prototipos prediseñados listos para ser copiados, este registro se basa en una estructura conocida como tabla hash, con pares "Clave-Valor"
- Clave
- Una cadena o identificador único que representa el prototipo
- Una cadena o identificador único que representa el prototipo
- Valor
- El objeto prototipo o modelo que implementa el método de clonación
- El objeto prototipo o modelo que implementa el método de clonación
- Clave
- Almacena una colección de objetos de prototipos prediseñados listos para ser copiados, este registro se basa en una estructura conocida como tabla hash, con pares "Clave-Valor"
- Solicitud
- El usuario solicita un prototipo especifico al registro utilizando la clave y este devuelve una copia del prototipo solicitado
- ¿En que momento utilizar el patrón?
- para
- Reducir la cantidad de subclases que solo se diferencian en la forma en la se inicializan sus respectivos objetos.
- cuando
- El código no dependa de las clases concretas que se necesitan copiar
- para
- ¿En que momento utilizar el patrón?
- El usuario solicita un prototipo especifico al registro utilizando la clave y este devuelve una copia del prototipo solicitado
- Registro de prototipos
- consiste en
- Estructura
- Implementar clone() y definir cómo copiar objetos concretos, ya sea con copia superficial o profunda
- su función es
- Client
- su función es
- Usar el método clone() para crear nuevas instancias a partir de un prototipo existente, evitando la creación desde cero.
- Usar el método clone() para crear nuevas instancias a partir de un prototipo existente, evitando la creación desde cero.
- su función es
- Prototype
- son
- Componentes
- Se tiene un objeto con unos valores ya establecidos pero se requiere de uno nuevo pero con los mismos atributos sin la necesidad de codificar uno por uno.
- es decir
- Objeto a partir de una clase con los valores clonados de otro objeto creador a partir de otra clase.
- Crea
- Singleton
- su función es
- Garantizar que una clase tenga una única instancia y brinde un punto de acceso global a esta misma
- es decir, se divide en dos
- Única Instancia: Solo se tiene una única creación de un objeto a partir de una clase, es esencial para administrar recursos compartidos como bases de datos.
- por ejemplo
- Si se intenta crear un nuevo objeto, el patrón devuelve siempre la misma instancia existente
- Si se intenta crear un nuevo objeto, el patrón devuelve siempre la misma instancia existente
- por ejemplo
- Brinda un punto de acceso global a la instancia única desde cualquier parte del programa, evitando que sea sobrescrita
- Elementos
- son
- Constructor privado
- Impide que otros objetos creen nuevas instancias usando el operador new
- Impide que otros objetos creen nuevas instancias usando el operador new
- Método de creación estático
- Este actúa como constructor, creando la instancia por primera vez y lo almacena en un campo estático
- Estructura
- se basa en
- Clase Singleton
- su función es
- Declara el método estático como "getInstance u obtenerInstancia" y va a ser el encargado de devolver siempre la misma instancia única de la clase
- ¿En que momento utilizar el patrón?
- cuando
- Una clase del programa solo deba tener una instancia
- por ejemplo
- un único objeto de bases de datos compartido por diferentes partes del programa
- por ejemplo
- se desea evitar la creación de múltiples instancias de una clase, el singleton desactiva todas la formas de crear nuevos objetos
- a excepción del
- método especial de creación el cual devuelve la única instancia existente o crea una si aún no existe.
- a excepción del
- Una clase del programa solo deba tener una instancia
- cuando
- ¿En que momento utilizar el patrón?
- Declara el método estático como "getInstance u obtenerInstancia" y va a ser el encargado de devolver siempre la misma instancia única de la clase
- su función es
- Clase Singleton
- se basa en
- Estructura
- Este actúa como constructor, creando la instancia por primera vez y lo almacena en un campo estático
- Constructor privado
- son
- Elementos
- Única Instancia: Solo se tiene una única creación de un objeto a partir de una clase, es esencial para administrar recursos compartidos como bases de datos.
- es decir, se divide en dos
- Garantizar que una clase tenga una única instancia y brinde un punto de acceso global a esta misma
- su función es
- Factory Method
- Estructurales
- Facade
- el problema radica en
- Cuando se trabajan con varias bibliotecas siempre se van a inicializar todos los objetos pertenecientes a estas, ejecutando los métodos en un orden
- a partir de ello
- El código siempre va a depender de los detalles internos de las mismas por lo tanto si se desea modificar o realizar un cambio en la biblioteca, todo el código va a ser afectado.
- Por ello como solucion
- Brinda una interfaz simplificada y unificada la cual interactúa con un sistema complejo que abarca varias clases y objetos (biblioteca)
- este
- ste
- Ofrece únicamente las funciones esenciales que necesita el cliente
- Oculta la lógica interna y la interacción entre los objetos del subsistema
- Capa de abstracción que asila el código del cliente y el código de la biblioteca
- Estructura
- se basa en
- Fachada
- proporciona
- Interfaz, quien dirige las solicitudes del clientes a los subsistemas
- Interfaz, quien dirige las solicitudes del clientes a los subsistemas
- proporciona
- Fachadas adicionales
- son
- El apoyo de las fachadas principales, lo en el trabajo y responsabilidades
- El apoyo de las fachadas principales, lo en el trabajo y responsabilidades
- son
- Subsistema complejo
- son
- El conjunto de objetos complejos que interactúan entre si, quienes son inicializados para que el sistema funcione correctamente
- El conjunto de objetos complejos que interactúan entre si, quienes son inicializados para que el sistema funcione correctamente
- son
- cliente
- es
- Quien interactúa con la fachada
- Ejemplo
- indica que
- En una casa se manejan varios sistemas como lo son el sistema de iluminación, calefacción, seguridad, entre otros, cada uno de estos tiene una serie de clases y objetos con funciones complejas para manejarlas por separado. Lo que hace la fachada proporcionara un único punto de acceso que oculta los detalles internos, por ejemplo un control inteligente. El usuario solo necesita interactuar con la fachada, la cual gestionará todo el proceso internamente.
- indica que
- Ejemplo
- Quien interactúa con la fachada
- es
- Fachada
- se basa en
- Estructura
- este
- Brinda una interfaz simplificada y unificada la cual interactúa con un sistema complejo que abarca varias clases y objetos (biblioteca)
- Por ello como solucion
- El código siempre va a depender de los detalles internos de las mismas por lo tanto si se desea modificar o realizar un cambio en la biblioteca, todo el código va a ser afectado.
- a partir de ello
- Cuando se trabajan con varias bibliotecas siempre se van a inicializar todos los objetos pertenecientes a estas, ejecutando los métodos en un orden
- el problema radica en
- DECORATOR-wrapper envoltorio
- su función es
- Agregar responsabilidades adicionales a un objeto sin alterar su comportamiento
- por lo tanto
- No hay necesidad de crear una clase hija para ampliar la funcionalidad de un objeto
- es decir
- Permite ampliar el comportamiento de un objeto durante la ejecución sin modificar el objeto original
- Estructura
- se basa en
- Componentes
- es
- La interfaz para los objetos envoltorios como para los objetos envueltos
- La interfaz para los objetos envoltorios como para los objetos envueltos
- es
- Componente concreto
- define
- El comportamiento que los envoltorios puedes modificar
- El comportamiento que los envoltorios puedes modificar
- define
- Decoradora base
- consiste en
- El objeto envuelve a objetos básicos como a otros decoradores, así mismo, el objeto básico actúa normal mientras de los decoradores agregan funcionalidades extra
- El objeto envuelve a objetos básicos como a otros decoradores, así mismo, el objeto básico actúa normal mientras de los decoradores agregan funcionalidades extra
- consiste en
- Decoradores concretos
- su función es
- Añadir nuevas funcionalidades o alteran el comportamiento del objeto envuelto.
- Añadir nuevas funcionalidades o alteran el comportamiento del objeto envuelto.
- su función es
- Cliente
- su función es
- Envolver el componente en varias capas de decoradores para añadir funcionalidades adicionales.
- teniendo en cuenta que
- Solo interactúa a través de una interfaz común
- Ejemplo
- consiste en
- Cuando tenemos frio nos ponemos una chaqueta y cuando llueve un impermeable encima. Estas prendas extienden mi comportamiento básico pero no hace parte de mi y me las puedo quitar cuando desee.
- consiste en
- Ejemplo
- Solo interactúa a través de una interfaz común
- teniendo en cuenta que
- Envolver el componente en varias capas de decoradores para añadir funcionalidades adicionales.
- su función es
- Componentes
- se basa en
- Estructura
- Permite ampliar el comportamiento de un objeto durante la ejecución sin modificar el objeto original
- es decir
- No hay necesidad de crear una clase hija para ampliar la funcionalidad de un objeto
- por lo tanto
- Agregar responsabilidades adicionales a un objeto sin alterar su comportamiento
- su función es
- Apater
- su función es
- Las clases con interfaces compatibles puedan interactuar entre si
- es decir
- El adaptador envuelve uno de los objetos y lo convierte para que pueda conectarse con otro objeto es decir que convierte los datos en varios formatos
- ¿Cómo funciona?
- 1. El adaptador implementa la interfaz esperada por el sistema.
- 2. El sistema interactúa con el adaptador utilizando la interfaz compatible
- 3. El adaptador convierte la llamada recibida al formato o estructura que el segundo objeto (incompatible) espera.
- 4. El adaptador delega la solicitud traducida al objeto incompatible, permitiendo la interacción sin cambios en ninguno de los participantes.
- Estructura
- se basa en
- cliente
- abarca
- La lógica de negocio del programa, interactuando con otros objetos
- La lógica de negocio del programa, interactuando con otros objetos
- abarca
- Interfaz con el cliente
- se encarga de
- Determina los aspectos que las clases deben cumplir para ser compatibles
- Determina los aspectos que las clases deben cumplir para ser compatibles
- se encarga de
- Clase del servicio
- representa
- Las interfaces incompatibles
- Las interfaces incompatibles
- representa
- Clase adaptadora
- es
- La interfaz compatible, abarca la clase del servicio incompatibles y traduce las solicitudes del cliente en formatos que pueda entender la clase del servicio
- La interfaz compatible, abarca la clase del servicio incompatibles y traduce las solicitudes del cliente en formatos que pueda entender la clase del servicio
- es
- Código cliente
- este
- La interfaz compatible, abarca la clase del servicio incompatibles y traduce las solicitudes del cliente en formatos que pueda entender la clase del servicio
- Ejemplo
- consiste en
- Cuando estamos jugando un video juego por el teclado, pero deseamos usar una consola, lo que sucede es que un sistema va a traducir las señales del controlados a eventos de teclado para que el juego pueda comprender
- consiste en
- Ejemplo
- La interfaz compatible, abarca la clase del servicio incompatibles y traduce las solicitudes del cliente en formatos que pueda entender la clase del servicio
- este
- cliente
- se basa en
- Estructura
- 4. El adaptador delega la solicitud traducida al objeto incompatible, permitiendo la interacción sin cambios en ninguno de los participantes.
- 3. El adaptador convierte la llamada recibida al formato o estructura que el segundo objeto (incompatible) espera.
- 2. El sistema interactúa con el adaptador utilizando la interfaz compatible
- 1. El adaptador implementa la interfaz esperada por el sistema.
- ¿Cómo funciona?
- El adaptador envuelve uno de los objetos y lo convierte para que pueda conectarse con otro objeto es decir que convierte los datos en varios formatos
- es decir
- Las clases con interfaces compatibles puedan interactuar entre si
- su función es
- Facade
- Patrones de comportamiento
- Itierador
- Su funcion es
- Recorrer o acceder de forma secuencia a los elementos de una colección
- por ejemplo
- listas y conjuntos
- su objetivo es
- no exponer su estructura interna
- Funciones
- se basa en
- Se extrae el comportamiento de recorrido de una colección
- Se pone en un objeto independiente llamado ITIREDOR
- Este encapsula los detalles del recorrido (Posición actual y elementos restantes)
- Establecer una interfaz en la cual el cliente pueda trabajar con cualquier iterador
- Estructura
- Se basa en
- Interfaz Iteradora
- se basa en
- Define métodos para recorrer elementos
- Define métodos para recorrer elementos
- se basa en
- Iteradores concretos
- su función es
- Implementar un algoritmo de recorrido específico por ejemplo, si lo va a recorrer por anchura o por profundidad
- Implementar un algoritmo de recorrido específico por ejemplo, si lo va a recorrer por anchura o por profundidad
- su función es
- Colección
- analiza
- Analiza cuales métodos son óptimos. El cliente puede trabajar con diferentes colecciones e iteradores sin conocer sus detalles, a partir de un mecanismo estándar que sean compatibles con el entorno de los elementos
- Analiza cuales métodos son óptimos. El cliente puede trabajar con diferentes colecciones e iteradores sin conocer sus detalles, a partir de un mecanismo estándar que sean compatibles con el entorno de los elementos
- analiza
- Colección concretos
- se basa en
- Cada vez que el cliente solicita un iterador, estas clases devuelven una nueva instancia de un iterador concreto diseñado para esa colección
- Cada vez que el cliente solicita un iterador, estas clases devuelven una nueva instancia de un iterador concreto diseñado para esa colección
- se basa en
- Cliente
- trabaja
- Con diferentes tipos de colecciones e iteradores sin realizar cambios en su código
- ¿En que momento utilizarlos?
- cuando
- Las estructuras de las colecciones son muy complejas y necesitan diferentes formar para ser recorridas, lo cual requiere de muchos algoritmos
- Se desea crear un iterador personalizado sin cambiar la colección ni el cliente
- cuando
- ¿En que momento utilizarlos?
- Con diferentes tipos de colecciones e iteradores sin realizar cambios en su código
- trabaja
- Interfaz Iteradora
- Se basa en
- Estructura
- Se extrae el comportamiento de recorrido de una colección
- se basa en
- Funciones
- no exponer su estructura interna
- su objetivo es
- listas y conjuntos
- por ejemplo
- Recorrer o acceder de forma secuencia a los elementos de una colección
- Su funcion es
- Medaitor
- consiste en
- Permite que la comunicación entre objetos sea fácil, sin la necesidad de que estos tengan una dependencia de uno con el otro
- su objetivo es
- Implementar un objeto que centralice la comunicación
- es decir
- En lugar de que los objetos se comuniquen directamente, el mediador va a recibir y transmitir los mensajes entre ellos
- Estructura
- se basa en
- Componentes
- se basa en
- Son clases que abarcan algo de la lógica del negocio, las cuales tiene una referencia a una interfaz mediadora
- sin embargo
- este no conoce las clase de la interfaz mediadora, por lo tanto puede reutilizarlo en otros sistemas
- este no conoce las clase de la interfaz mediadora, por lo tanto puede reutilizarlo en otros sistemas
- sin embargo
- Son clases que abarcan algo de la lógica del negocio, las cuales tiene una referencia a una interfaz mediadora
- se basa en
- Mediadora
- su objetivo es
- Define cómo se comunican los componentes con el mediador
- Define cómo se comunican los componentes con el mediador
- su objetivo es
- Mediadores concretos
- su función es
- Coordina y gestiona las interacciones/relaciones de los componentes
- Coordina y gestiona las interacciones/relaciones de los componentes
- su función es
- Comunicación
- son
- Componentes que notifican al mediador de eventos y este decide cómo responder sin que los componentes conozcan entre sí. (emisor no conocer a receptor y receptor no conoce a emisor)
- ¿En que momento aplicarlo?
- cuando
- Si se requiere cambiar algo de las clases, pero tienen un dependencia muy fuerte con otras
- Si se esta creando subclases para reutilizar comportamientos comunes
- cuando
- ¿En que momento aplicarlo?
- Componentes que notifican al mediador de eventos y este decide cómo responder sin que los componentes conozcan entre sí. (emisor no conocer a receptor y receptor no conoce a emisor)
- son
- Componentes
- se basa en
- Estructura
- En lugar de que los objetos se comuniquen directamente, el mediador va a recibir y transmitir los mensajes entre ellos
- es decir
- Implementar un objeto que centralice la comunicación
- su objetivo es
- Permite que la comunicación entre objetos sea fácil, sin la necesidad de que estos tengan una dependencia de uno con el otro
- consiste en
- Memento
- Su función es
- Restaurar y guardar el estado de un objeto sin la necesidad de dar a conocer los detalles internos
- Por ejemplo
- La función de deshacer y rehacer
- ¿En que momento usarlas?
- cuando
- Se desea restaurar el estado previo de un objeto
- El acceso a objetos abarque detalles internos del mismo
- Solución
- El objeto es responsable de crear y almacenar su propia información por medio de la instantánea
- Implementaciones
- se divide en
- Clases anidadas
- elementos
- El objeto originador:
- es
- Clase que se desea guardar y restaurar, tiene acceso a su propio estado y es el encargado de crear un memento
- es
- El memento
- su función es
- Restaurar el objeto al estado que se desea, es decir, almacena la información necesaria del objeto originador
- su función es
- Instantánea
- hace parte del
- Memento el cual genera una copia del estado del objeto originador
- hace parte del
- Cuidador
- es
- Un objeto que almacena mementos y restaura el estado del originador, así mismo, ella no puede modificarlo ni acceder al estado interno
- este
- se vuelve independiente de la originadora
- ya que
- La restauración del estado se maneja directamente en el memento
- ya que
- se vuelve independiente de la originadora
- este
- Un objeto que almacena mementos y restaura el estado del originador, así mismo, ella no puede modificarlo ni acceder al estado interno
- es
- El objeto originador:
- elementos
- Interfaz intermedia
- consiste en que
- El memento se trabaja mediante una interfaz la cual prohíbe el acceso a detalles internos
- por lo tanto
- La cuidadora solo puede trabajar por medio de esta y la originadora directamente con el memento
- por lo tanto
- El memento se trabaja mediante una interfaz la cual prohíbe el acceso a detalles internos
- consiste en que
- Encapsulación estricta
- se basa en que
- Cada originadora se relación con una clase memento, recibiendo su estado a través de su constructor, por lo que ninguna exponen sus detalles a nadie.
- por lo tanto
- Esto permite que el memento restaure el estado de la originadora, siempre que esta tenga los métodos adecuados para hacerlo
- por lo tanto
- Cada originadora se relación con una clase memento, recibiendo su estado a través de su constructor, por lo que ninguna exponen sus detalles a nadie.
- se basa en que
- Clases anidadas
- se divide en
- Implementaciones
- El objeto es responsable de crear y almacenar su propia información por medio de la instantánea
- Solución
- Se desea restaurar el estado previo de un objeto
- cuando
- ¿En que momento usarlas?
- La función de deshacer y rehacer
- Por ejemplo
- Restaurar y guardar el estado de un objeto sin la necesidad de dar a conocer los detalles internos
- Su función es
- Tempalte Method
- consiste en
- estructura un algoritmo con procesos similares de varias sub clases en una clase base
- sin embargo
- Poseen procesos propios los cuales realizan las subclases independientemente
- Aspectos importantes
- Define el flujo del algoritmo mediante pasos
- Abarca la lógica común en una clase base lo cual evita que se dupliquen los procesos
- Las subclases pueden personalizar qué hacen los pasos individuales, pero no pueden cambiar el orden ni la estructura general del algoritmo
- Elementos
- son
- Clase abstracta
- definen
- Pasos del algoritmo se divide en pasos
- consisten en
- Pasos abstractas
- estable
- Un modelo plantilla la cual contiene el flujo general del algoritmo, se denominan métodos que son implementados por las subclases
- Un modelo plantilla la cual contiene el flujo general del algoritmo, se denominan métodos que son implementados por las subclases
- estable
- Pasos opciones
- son
- Métodos con una implementación por defecto, pero que las subclases pueden sobrescribir si es necesario
- Métodos con una implementación por defecto, pero que las subclases pueden sobrescribir si es necesario
- son
- Ganchos
- son
- Métodos opcionales vacíos que las subclases pueden usar para extender el comportamiento
- Métodos opcionales vacíos que las subclases pueden usar para extender el comportamiento
- son
- Pasos abstractas
- consisten en
- Pasos del algoritmo se divide en pasos
- definen
- Clases concretas
- son
- Subclases que pueden personalizar qué hacen los pasos individuales, pero no pueden cambiar el orden ni la estructura general del algoritmo
- ¿En qué momento aplicarlo?
- cuando
- Hay algoritmos similares con algunas variaciones
- Ejemplo
- indica que
- Cuando se prepara una bebida caliente siempre se siguen los mismos pasos, hervir agua, escoger te o con café, servir y opcionalmente agregar azúcar. Las subclases son te y café quienes no pueden modificar los pasos(método plantilla), pero si pueden decidir si modificar algo dentro de ellas, por ejemplo, el azúcar
- indica que
- Ejemplo
- Hay algoritmos similares con algunas variaciones
- cuando
- ¿En qué momento aplicarlo?
- Subclases que pueden personalizar qué hacen los pasos individuales, pero no pueden cambiar el orden ni la estructura general del algoritmo
- son
- Clase abstracta
- son
- Elementos
- Define el flujo del algoritmo mediante pasos
- Aspectos importantes
- Poseen procesos propios los cuales realizan las subclases independientemente
- sin embargo
- estructura un algoritmo con procesos similares de varias sub clases en una clase base
- consiste en
- Visitor
- consiste en
- Separar los algoritmos del objeto sobre el cual están trabajando
- es decir
- Añadir nuevos comportamientos sin cambiar la clase de los objetos
- La misma operación que se aplica a varios tipos de objetos se almacena en una clase visitante, esta abarca propósitos distintos para los objetos
- por lo tanto
- Permite que se ejecute un método correcto según el tipo de objeto
- Estructura
- se basa en
- Interfaz visitante
- establece
- Los métodos concretos para conectar con cada tipo de elemento
- Los métodos concretos para conectar con cada tipo de elemento
- establece
- Visitante concreto
- determina
- Los métodos en la interfaz para realizar operaciones especificas con cada elemento
- Los métodos en la interfaz para realizar operaciones especificas con cada elemento
- determina
- Elementos concretos
- son
- Clases que declaran el método para aceptar y redirige la solicitud de ejecución al método del visitante
- Clases que declaran el método para aceptar y redirige la solicitud de ejecución al método del visitante
- son
- Interfaz elemento
- determina
- El método para aceptar al visitante
- El método para aceptar al visitante
- determina
- Cliente
- es
- Es el encargado de aplicar el visitante a una estructura de objetos
- Ejemplo
- indica que
- Hay elementos Ciudad y Industria, y el visitante tendrá métodos en cada uno "visitarCiudad" y "visitarIndustria" . Estos llegan a los elementos anteriores y los elementos llaman al método del visitante, este accede a sus atributos y realizan operaciones
- indica que
- Ejemplo
- Es el encargado de aplicar el visitante a una estructura de objetos
- es
- Interfaz visitante
- se basa en
- Estructura
- Permite que se ejecute un método correcto según el tipo de objeto
- por lo tanto
- Añadir nuevos comportamientos sin cambiar la clase de los objetos
- es decir
- Separar los algoritmos del objeto sobre el cual están trabajando
- consiste en
- Itierador
- Creacionales
- Tipos
- Son plantillas las cuales guían a la construcción de óptimo códigos
Informationen
- Beschreibung
- Mindmap am Patrones de diseño, erstellt von danna jaimes am 13/11/2024.
- Erstellt von
- danna jaimes · Nov 2024
- Aktualisiert
- 16 Nov 2024
- Aufrufe
- 0
- Bewertung