GoConqr has a new look! Let us know what you think.

Mind map

Patrones de diseño

danna jaimes Spanish

Map content

Patrones de diseño

  1. ¿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
                        • Producto Concreto
                          • es
                            • Determina la interfaz del producto e indica específicamente el comportamiento
                        • Creador
                          • es
                            • Declara el Factory Method el cual devuelve nuevos objetos del tipo del producto los cuales deben coincidir con la interfaz
                        • Creadores concretos
                          • es
                            • Devuelven un tipo diferente de producto sobrescribiendo el Factory Method
          • 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
                        • Productos concretos
                          • son
                            • ´Productos distintos de productos abstractos los cuales se agrupan en variantes
                              • Por ejemplo
                                • (silla/sofá) se implementan en (victoriano/moderno).
                        • Fabrica abstracta
                          • son
                            • Indica un grupo de métodos para crear cada uno de los productos abstractos
                        • 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.
                        • 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.
          • 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.
                              • Constructores Concretos
                                • define
                                  • Como construir el producto siguiendo pasos específicos de los cuales no todos van a compartir la misma interfaz
                              • Producto
                                • es
                                  • Resultado final de la construcción el cual puede estar compuesto por múltiples partes unidas paso a paso durante el proceso
                              • Directora
                                • su función es
                                  • Controlar y organizar el orden de los pasos de la construcción del producto
                              • 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
          • 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.
                        • 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
                                      • Valor
                                        • El objeto prototipo o modelo que implementa el método de clonación
                                  • 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
                        • 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.
          • 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
                  • 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
                        • 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
                                          • 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.
        • 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
                                • Fachadas adicionales
                                  • son
                                    • El apoyo de las fachadas principales, lo en el trabajo y responsabilidades
                                • Subsistema complejo
                                  • son
                                    • El conjunto de objetos complejos que interactúan entre si, quienes son inicializados para que el sistema funcione correctamente
                                • 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.
          • 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
                            • Componente concreto
                              • define
                                • El comportamiento que los envoltorios puedes modificar
                            • 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
                            • Decoradores concretos
                              • su función es
                                • Añadir nuevas funcionalidades o alteran el comportamiento del objeto envuelto.
                            • 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.
          • 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
                                  • Interfaz con el cliente
                                    • se encarga de
                                      • Determina los aspectos que las clases deben cumplir para ser compatibles
                                  • Clase del servicio
                                    • representa
                                      • Las interfaces incompatibles
                                  • 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
                                  • 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
        • 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
                                  • 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
                                  • 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
                                  • 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
                                  • 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
          • 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
                            • Mediadora
                              • su objetivo es
                                • Define cómo se comunican los componentes con el mediador
                            • Mediadores concretos
                              • su función es
                                • Coordina y gestiona las interacciones/relaciones de los componentes
                            • 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
          • 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
                                      • El memento
                                        • su función es
                                          • Restaurar el objeto al estado que se desea, es decir, almacena la información necesaria del objeto originador
                                      • Instantánea
                                        • hace parte del
                                          • Memento el cual genera una copia del estado del objeto originador
                                      • 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
                                  • 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
                                  • 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
          • 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
                                    • Pasos opciones
                                      • son
                                        • Métodos con una implementación por defecto, pero que las subclases pueden sobrescribir si es necesario
                                    • Ganchos
                                      • son
                                        • Métodos opcionales vacíos que las subclases pueden usar para extender el comportamiento
                            • 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
          • 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
                            • Visitante concreto
                              • determina
                                • Los métodos en la interfaz para realizar operaciones especificas con cada elemento
                            • Elementos concretos
                              • son
                                • Clases que declaran el método para aceptar y redirige la solicitud de ejecución al método del visitante
                            • Interfaz elemento
                              • determina
                                • El método para aceptar al visitante
                            • 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

Information

Description
Mind Map on Patrones de diseño, created by danna jaimes on 13/11/2024.
Created by
danna jaimes · Nov 2024
Updated
Nov 16, 2024
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?