¡GoConqr estrena diseño! Cuéntanos qué te parece.

Mapa mental

PATRONES DE DISEÑO GoF

Jose Cervera Español

PATRONES DE DISEÑO GoF

Contenido del mapa

PATRONES DE DISEÑO GoF

  1. PATRONES DE COMPORTAMIENTO

    • Funciones
      • gestionar algoritmos, relaciones y responsabilidades entre objetos.
      • Alejan su enfoque del flujo de control para concentrarse solo en la forma en que los objetos están interconectados.
      • Usan la herencia para distribuir el comportamiento entre clases.
    • Tipos
      • Chain of Responsibility
        • Cuando utilizarlo
          • cuando se espera que su programa procese diferentes tipos de solicitudes de varias maneras, pero los tipos exactos de solicitudes y sus secuencias se desconocen de antemano.
          • cuando sea esencial ejecutar varios manejadores en un orden particular
          • cuando se supone que el conjunto de controladores y su orden cambian en el tiempo de ejecución.
        • Ventajas
          • Puede controlar el orden de manejo de solicitudes.
          • Principio de responsabilidad única . Puede desacoplar clases que invocan operaciones de clases que realizan operaciones.
          • Principio abierto / cerrado . Puede introducir nuevos controladores en la aplicación sin romper el código de cliente existente.
        • Desventajas
          • Algunas solicitudes pueden terminar sin ser manejadas.
        • Características
          • Evita acoplar el emisor y al receptor de una petición
          • Posibilidad de más de un objeto para responder una petición.
          • Crea una cadena con los objetos receptores
            • pasa la petición a través de la cadena hasta que esta sea tratada por algún objeto.
        • Diagrama UML
        • Función
          • permite pasar solicitudes a lo largo de una cadena de controladores.
      • Command
        • Características
          • Encapsula una petición o acción en un objeto
          • Parametrizar a los clientes con distintas peticiones,
          • Registro de las peticiones y poder deshacer operaciones.
        • Cuando utilizarlo
          • cuando desee parametrizar objetos con operaciones.
          • cuando desee poner en cola las operaciones, programar su ejecución o ejecutarlas de forma remota.
          • cuando desee implementar operaciones reversibles.
        • Ventajas
          • Principio de responsabilidad única . Puede desacoplar clases que invocan operaciones de clases que realizan estas operaciones.
          • Principio abierto / cerrado . Puede introducir nuevos comandos en la aplicación sin romper el código del cliente existente.
          • Puede implementar deshacer / rehacer.
          • Puede implementar la ejecución diferida de operaciones.
          • Puede ensamblar un conjunto de comandos simples en uno complejo.
        • Desventajas
          • El código puede volverse más complicado ya que está introduciendo una capa completamente nueva entre remitentes y receptores.
        • Diagrama UML
        • Función
          • convierte una solicitud en un objeto independiente que contiene toda la información sobre la solicitud.
      • Interpreter
        • Características
          • Necesita un lenguaje dado
          • define representación de la gramática del lenguaje dado
          • Interpreta las sentencias del lenguaje
        • Cuando utilizarlo
          • Cuando debemos trabajar con sentencias de un lenguaje que nuestro lenguaje de programación no reconoce automáticamente.
          • Cuando la gramática del lenguaje con el que debemos trabajar es sencilla.
          • No debe utilizarse si ya existe alguna clase nativa que interprete éste lenguaje
        • Ventajas
          • Fácil modificación y ampliación de los elementos gramaticales
          • Su implementación es sencilla
          • La implementación de los métodos para cada elemento del lenguaje es dinámica
        • Desventajas
          • No es muy eficiente.
          • No cubre gramáticas complejas.
        • Diagrama UML
        • Función
          • interpretar un lenguaje definido previamente mediante su gramática.
      • Iterator
        • Cuando utilizarlo
          • cuando su colección tenga una estructura de datos compleja bajo el capó, pero desea ocultar su complejidad a los clientes
          • para reducir la duplicación del código transversal en su aplicación.
          • cuando desee que su código pueda atravesar diferentes estructuras de datos o cuando los tipos de estas estructuras sean desconocidos de antemano.
        • Características
          • Permite acceder secuencialmente a los elementos de un objeto
          • No expone la representación interna del objeto
        • Ventajas
          • Principio de responsabilidad única . Puede limpiar el código del cliente y las colecciones extrayendo algoritmos transversales voluminosos en clases separadas.
          • Principio abierto / cerrado . Puede implementar nuevos tipos de colecciones e iteradores y pasarlos al código existente sin romper nada.
          • Puede iterar sobre la misma colección en paralelo porque cada objeto iterador contiene su propio estado de iteración.
          • Por la misma razón, puede retrasar una iteración y continuarla cuando sea necesario.
        • Desventajas
          • Aplicar el patrón puede ser una exageración si su aplicación solo funciona con colecciones simples.
          • Usar un iterador puede ser menos eficiente que pasar directamente por elementos de algunas colecciones especializadas.
        • Diagrama UML
        • Función
          • permite recorrer elementos de una colección sin exponer su representación subyacente (lista, pila, árbol, etc.).
      • Mediator
        • Características
          • Promueve bajo acoplamiento
          • Evita que objetos se refieran entre ellos explícitamente
          • Permite interacción entre objetos de forma independiente
        • Función
          • permite reducir las dependencias caóticas entre los objetos.
        • Cuando utilizarlo
          • cuando sea difícil cambiar algunas de las clases porque están estrechamente acopladas a un montón de otras clases.
          • cuando no pueda reutilizar un componente en un programa diferente porque depende demasiado de otros componentes.
          • cuando se encuentre creando toneladas de subclases de componentes solo para reutilizar algunos comportamientos básicos en varios contextos.
        • Ventajas
          • Principio de responsabilidad única . Puede extraer las comunicaciones entre varios componentes en un solo lugar, lo que facilita su comprensión y mantenimiento.
          • Principio abierto / cerrado . Puede introducir nuevos mediadores sin tener que cambiar los componentes reales.
          • Puede reducir el acoplamiento entre varios componentes de un programa.
          • Puede reutilizar componentes individuales más fácilmente.
        • Desventajas
          • Con el tiempo, un mediador puede convertirse en un Objeto de Dios .
        • Diagrama UML
      • Memento
        • Función
          • permite guardar y restaurar el estado anterior de un objeto sin revelar los detalles de su implementación.
        • Cuando utilizarlo
          • cuando desee producir instantáneas del estado del objeto para poder restaurar un estado anterior del objeto.
          • cuando el acceso directo a los campos / captadores / definidores del objeto viola su encapsulación.
        • Características
          • Representa el estado interno de un objeto
          • No viola la encapsulación
          • El objeto puede volver a un estado anterior
        • Ventajas
          • Puede producir instantáneas del estado del objeto sin violar su encapsulación.
          • Puede simplificar el código del autor dejando que el cuidador mantenga el historial del estado del autor.
        • Desventajas
          • La aplicación puede consumir mucha RAM si los clientes crean recuerdos con demasiada frecuencia.
          • Los cuidadores deben rastrear el ciclo de vida del originador para poder destruir recuerdos obsoletos.
          • La mayoría de los lenguajes de programación dinámicos, como PHP, Python y JavaScript, no pueden garantizar que el estado dentro del recuerdo permanezca intacto.
        • Diagrama UML
      • Observer
        • Función
          • Permite definir un mecanismo de suscripción para notificar a varios objetos sobre cualquier evento que le suceda al objeto que está observando.
        • Características
          • Dependencia 1-a-N entre objetos
          • Los observadores se suscriben a un sujeto
          • Al cambiar el sujeto se notifica a suscriptores
        • Cuando utilizarlo
          • cuando los cambios en el estado de un objeto pueden requerir cambiar otros objetos, y el conjunto real de objetos es desconocido de antemano o cambia dinámicamente.
          • cuando algunos objetos en su aplicación deben observar a otros, pero solo por un tiempo limitado o en casos específicos.
        • Ventajas
          • Principio abierto / cerrado . Puede introducir nuevas clases de suscriptor sin tener que cambiar el código del editor (y viceversa si hay una interfaz de editor).
          • Puede establecer relaciones entre objetos en tiempo de ejecución.
        • Desventajas
          • Los suscriptores son notificados en orden aleatorio.
        • Diagrama UML
      • State
        • Desventajas
          • Aplicar el patrón puede ser excesivo si una máquina de estado tiene solo unos pocos estados o rara vez cambia.
        • Ventajas
          • Simplifique el código del contexto eliminando los voluminosos condicionales de las máquinas de estado.
          • Principio abierto / cerrado . Introducir nuevos estados sin cambiar las clases de estado existentes o el contexto.
          • Principio de responsabilidad única . Organice el código relacionado con estados particulares en clases separadas.
        • Características
          • Permite cambiar el comportamiento de un objeto en ejecución
            • Cambia su estado interno
        • Cuando utilizarlo
          • cuando se tenga un objeto que se comporte de manera diferente dependiendo de su estado actual, el número de estados es enorme y el código específico del estado cambia con frecuencia.
          • cuando se tenga una clase contaminada con condicionales masivos que alteren el comportamiento de la clase de acuerdo con los valores actuales de los campos de la clase.
          • cuando se tenga una gran cantidad de código duplicado en estados y transiciones similares de una máquina de estados basada en condiciones.
        • Función
          • permite que un objeto modifique su comportamiento cuando cambia su estado interno. Parece que el objeto cambió su clase.
        • Diagrama UML
      • Strategy
        • Función
          • permite definir una familia de algoritmos, colocar cada uno de ellos en una clase separada y hacer que sus objetos sean intercambiables.
        • Cuando utilizarlo
          • cuando su clase tenga un operador condicional masivo que cambie entre diferentes variantes del mismo algoritmo.
          • para aislar la lógica de negocios de una clase de los detalles de implementación de algoritmos que pueden no ser tan importantes en el contexto de esa lógica.
          • cuando tenga muchas clases similares que solo difieren en la forma en que ejecutan algún comportamiento.
          • cuando desee utilizar diferentes variantes de un algoritmo dentro de un objeto y poder cambiar de un algoritmo a otro durante el tiempo de ejecución.
        • Características
          • Define una familia de algoritmos
            • Permite variación del algoritmo seleccionado
              • Independiente de los clientes que lo usan
            • hace los algoritmos encapsulables
        • Ventajas
          • Puede intercambiar algoritmos utilizados dentro de un objeto en tiempo de ejecución.
          • Puede aislar los detalles de implementación de un algoritmo del código que lo usa.
          • Puede reemplazar la herencia con la composición.
          • Principio abierto / cerrado . Puede introducir nuevas estrategias sin tener que cambiar el contexto.
        • Desventajas
          • Si solo tiene un par de algoritmos y rara vez cambian, no hay una razón real para complicar demasiado el programa con nuevas clases e interfaces que vienen junto con el patrón.
          • Los clientes deben ser conscientes de las diferencias entre las estrategias para poder seleccionar una adecuada.
          • Muchos lenguajes de programación modernos tienen soporte de tipo funcional que le permite implementar diferentes versiones de un algoritmo dentro de un conjunto de funciones anónimas
        • Diagrama UML
      • Template method
        • Desventajas
          • Los métodos de plantilla tienden a ser más difíciles de mantener cuanto más pasos tienen.
          • Puede violar el Principio de sustitución de Liskov
          • Algunos clientes pueden estar limitados por el esqueleto proporcionado de un algoritmo.
        • Ventajas
          • Puede permitir que los clientes anulen solo ciertas partes de un algoritmo grande
          • Puede extraer el código duplicado en una superclase.
        • Características
          • Define el esqueleto de un algoritmo
          • Permite a las subclases redefinir el algoritmo
            • No cambia su estructura
        • Cuando utilizarlo
          • cuando se desee que los clientes extiendan solo pasos particulares de un algoritmo, pero no todo el algoritmo o su estructura.
          • cuando tenga varias clases que contengan algoritmos casi idénticos con algunas diferencias menores. Como resultado, es posible que deba modificar todas las clases cuando cambie el algoritmo.
        • Función
          • define el esqueleto de un algoritmo en la superclase, pero permite que las subclases anulen los pasos específicos del algoritmo sin cambiar su estructura.
        • Diagrama UML
      • Visitor
        • Desventajas
          • Debe actualizar todos los visitantes cada vez que se agrega o elimina una clase de la jerarquía de elementos.
          • Los visitantes pueden carecer del acceso necesario a los campos y métodos privados de los elementos con los que deben trabajar.
        • Ventajas
          • Principio abierto / cerrado . Puede introducir un nuevo comportamiento que pueda funcionar con objetos de diferentes clases sin cambiar estas clases
          • Principio de responsabilidad única . Puede mover varias versiones del mismo comportamiento a la misma clase.
          • Un objeto visitante puede acumular información útil mientras trabaja con varios objetos.
        • Características
          • Representa una operación
            • sobre una estructura de objetos
          • Permite nueva operación sin cambiar clases
          • Separa el algoritmo de la estructura de datos
        • Cuando utilizarlo
          • cuando necesite realizar una operación en todos los elementos de una estructura de objeto compleja
          • cuando un comportamiento tenga sentido solo en algunas clases de una jerarquía de clases, pero no en otras.
        • Función
          • permite separar algoritmos de los objetos en los que operan.
        • Diagrama UML
  2. PATRONES CREACIONALES

    • Funciones
      • Abstraen el proceso de creación de instancias
      • Ayuda a hacer sistemas independientes de objetos en cuanto a
        • Creación
        • Composición
        • Representación
      • Utiliza herencia para la clase que se instancia
      • El proceso de creación puede ser desacoplado del sistema
    • Tipos
      • Abstract Factory
        • Características
          • Proporciona interfaz para crear familia de objetos
            • No es necesario especificar sus clases concretas
        • Desventajas
          • El código puede volverse más complicado de lo que debería ser, ya que se introducen muchas nuevas interfaces y clases junto con el patrón.
        • Ventajas
          • Puede estar seguro de que los productos que obtiene de una fábrica son compatibles entre sí.
          • Evita el acoplamiento estrecho entre productos concretos y el código del cliente.
          • Principio de responsabilidad única . Puede extraer el código de creación del producto en un solo lugar, haciendo que el código sea más fácil de soportar.
          • Principio abierto / cerrado . Puede introducir nuevas variantes de productos sin romper el código de cliente existente.
        • Cuando utilizarlo
          • cuando su código necesite trabajar con varias familias de productos relacionados, pero no desea que dependa de las clases concretas de esos productos; pueden ser desconocidos de antemano o simplemente desea permitir una futura extensibilidad.
        • Función
          • permite producir familias de objetos relacionados sin especificar sus clases concretas.
        • Diagrama UML
      • Builder
        • Desventajas
          • La complejidad general del código aumenta ya que el patrón requiere la creación de múltiples clases nuevas
        • Ventajas
          • Puede construir objetos paso a paso, diferir los pasos de construcción o ejecutar pasos de forma recursiva.
          • Puede reutilizar el mismo código de construcción al crear varias representaciones de productos.
          • Principio de responsabilidad única
        • Características
          • Separa la construcción de un objeto de su representación
          • el mismo proceso de construcción puede crear representaciones diferentes
        • Cuando utilizarlo
          • cuando desee que su código pueda crear diferentes representaciones de algún producto (por ejemplo, casas de piedra y madera).
          • para construir árboles compuestos u otros objetos complejos.
        • Función
          • permite producir diferentes tipos y representaciones de un objeto utilizando el mismo código de construcción.
        • Diagrama UML
      • Factory Method
        • Función
          • proporciona una interfaz para crear objetos en una superclase, pero permite que las subclases alteren el tipo de objetos que se crearán.
        • Cuando utilizarlo
          • cuando no sepa de antemano los tipos exactos y las dependencias de los objetos con los que su código debería funcionar.
          • cuando desee proporcionar a los usuarios de su biblioteca o marco una forma de ampliar sus componentes internos.
          • cuando desee ahorrar recursos del sistema reutilizando objetos existentes en lugar de reconstruirlos cada vez.
        • Características
          • Define una interfaz para crear un objeto
          • Las sublcases deciden que clase instanciar
        • Ventajas
          • Evita el acoplamiento estrecho entre el creador y los productos de hormigón.
          • Principio de responsabilidad única .
          • Principio abierto / cerrado .
        • Desventajas
          • El código puede volverse más complicado ya que necesita introducir muchas subclases nuevas para implementar el patrón
        • Diagrama UML
      • Prototype
        • Desventajas
          • Clonar objetos complejos que tienen referencias circulares puede ser muy complicado.
        • Ventajas
          • Puede clonar objetos sin acoplarlos a sus clases concretas.
          • Puede deshacerse del código de inicialización repetido a favor de la clonación de prototipos preconstruidos.
          • Puede producir objetos complejos más convenientemente.
        • Características
          • Cuenta con una instancia prototípica
          • Los objetos se crean copiando un prototipo
          • Especifica los tipos de objetos a crear
        • Cuando utilizarlo
          • cuando su código no dependa de las clases concretas de objetos que necesita copiar.
          • uando desee reducir el número de subclases que solo difieren en la forma en que inicializan sus respectivos objetos.
        • Función
          • permite copiar objetos existentes sin hacer que su código dependa de sus clases.
        • Diagrama UML
      • Singleton
        • Características
          • Garantiza una sola instancia de clase
          • Proporciona un punto de acceso global a una instancia realizada
        • Desventajas
          • Viola el principio de responsabilidad única . El patrón resuelve dos problemas a la vez.
          • puede enmascarar un mal diseño, por ejemplo, cuando los componentes del programa se conocen demasiado entre sí.
          • requiere un tratamiento especial en un entorno multiproceso para que varios subprocesos no creen un objeto singleton varias veces.
        • Ventajas
          • Puede estar seguro de que una clase tiene una sola instancia.
          • Obtiene un punto de acceso global a esa instancia.
          • El objeto singleton se inicializa solo cuando se solicita por primera vez.
        • Cuando utilizarlo
          • uando una clase en su programa debe tener una sola instancia disponible para todos los clientes
          • cuando necesite un control más estricto sobre las variables globales.
        • Función
          • permite asegurarse de que una clase tenga solo una instancia, al tiempo que proporciona un punto de acceso global a esta instancia.
        • Diagrama UML
  3. PATRONES ESTRUCTURALES

    • Funciones
      • Definen componen las clases y los objetos para formar estructuras más grandes
      • usan la herencia para componer interfaces o implementaciones
      • Facilitan la modelización de nuestros software
      • Especificando la forma en la que unas clases se relacionan con otras.
      • Solucionan problemas de composición
    • Tipos
      • Adapter
        • Desventajas
          • La complejidad general del código aumenta porque necesita introducir un conjunto de nuevas interfaces y clases.
        • Ventajas
          • Principio de responsabilidad única . Puede separar la interfaz o el código de conversión de datos de la lógica comercial principal del programa.
          • Principio abierto / cerrado . Puede introducir nuevos tipos de adaptadores en el programa sin romper el código del cliente existente
        • Características
          • Objeto intermedio para comunicar clases
          • Permite a clases con diferentes interfaces trabajar entre ellas
        • Cuando usarlo
          • cuando quiera usar alguna clase existente, pero su interfaz no es compatible con el resto de su código.
          • cuando desee reutilizar varias subclases existentes que carecen de alguna funcionalidad común que no se puede agregar a la superclase.
        • Función
          • permite la colaboración de objetos con interfaces incompatibles.
        • Diagrama UML
      • Bridge
        • Desventajas
          • Puede hacer que el código sea más complicado aplicando el patrón a una clase altamente coherente.
        • Ventajas
          • Puede crear clases y aplicaciones independientes de la plataforma.
          • El código del cliente funciona con abstracciones de alto nivel.
          • Principio abierto / cerrado .
          • Principio de responsabilidad única . Puede centrarse en la lógica de alto nivel en la abstracción
        • Características
          • Desacopla una abstracción de su implementación
            • Permite evolucionar de forma independiente
        • Cuando usarlo
          • cuando desee dividir y organizar una clase monolítica que tenga varias variantes de alguna funcionalidad
          • cuando necesite extender una clase en varias dimensiones ortogonales (independientes).
          • si necesita poder cambiar implementaciones en tiempo de ejecución.
        • Función
          • permite dividir una clase grande o un conjunto de clases estrechamente relacionadas en dos jerarquías separadas
        • Diagrama UML
      • Composite
        • Función
          • permite componer objetos en estructuras de árbol y luego trabajar con estas estructuras como si fueran objetos individuales.
        • Cuando utilizarlo
          • cuando tenga que implementar una estructura de objeto con forma de árbol.
          • cuando desee que el código del cliente trate los elementos simples y complejos de manera uniforme.
        • Características
          • Comiba objetos en estructuras de árbol
          • Todos los elementos emplean una misma interfaz
          • Permite tratar de manera uniforme a objetos
            • Individuales
            • Compuestos
        • Ventajas
          • Puede trabajar con estructuras arbóreas complejas de manera más conveniente: utilice el polimorfismo y la recursividad para su ventaja.
          • Principio abierto / cerrado .
        • Desventajas
          • Puede ser difícil proporcionar una interfaz común para las clases cuya funcionalidad difiere demasiado.
        • Diagrama UML
      • Decorator
        • Características
          • Añade funcionalidad extra a un objeto
            • estático
            • Dinámico
          • No modifica el comportamiento del resto de objetos
          • Alternativa flexible a la herencia
        • Función
          • permite adjuntar nuevos comportamientos a los objetos al colocar estos objetos dentro de objetos de envoltura especiales que contienen los comportamientos.
        • Cuando utilizarlo
          • cuando necesite poder asignar comportamientos adicionales a los objetos en tiempo de ejecución sin romper el código que usa estos objetos.
          • cuando sea incómodo o no sea posible extender el comportamiento de un objeto usando la herencia.
        • Ventajas
          • Puede extender el comportamiento de un objeto sin crear una nueva subclase.
          • Puede agregar o quitar responsabilidades de un objeto en tiempo de ejecución.
          • Puede combinar varios comportamientos envolviendo un objeto en múltiples decoradores.
          • Principio de responsabilidad única
        • Desventajas
          • Es difícil eliminar un contenedor específico de la pila de contenedores.
          • Es difícil implementar un decorador de tal manera que su comportamiento no dependa del orden en la pila de decoradores.
          • El código de configuración inicial de las capas puede parecer bastante feo.
        • Diagrama UML
      • Facade
        • Fucnión
          • proporciona una interfaz simplificada para una biblioteca, un marco o cualquier otro conjunto complejo de clases.
        • Cuando utilizarlo
          • cuando necesite tener una interfaz limitada pero directa a un subsistema complejo.
          • cuando quiera estructurar un subsistema en capas.
        • Características
          • Define una interfaz de alto nivel
            • Permite que el subisitema sea mas fácil de usar
          • Simplifica tratar con código complejo
        • Ventajas
          • Puede aislar su código de la complejidad de un subsistema.
        • Desventajas
          • Una fachada puede convertirse en un objeto divino acoplado a todas las clases de una aplicación.
        • Diagrama UML
      • Flyweight
        • Función
          • permite ajustar más objetos en la cantidad de RAM disponible al compartir partes comunes de estado entre varios objetos en lugar de mantener todos los datos en cada objeto.
        • Cuando utilizarlo
          • cuando su programa debe admitir una gran cantidad de objetos que apenas caben en la RAM disponible.
        • Características
          • ahorro de memoria
          • Objetos comparten un mismo objeto con propiedades comunes
        • Ventajas
          • Puede ahorrar mucha RAM, suponiendo que su programa tenga toneladas de objetos similares.
        • Desventajas
          • Es posible que esté intercambiando RAM por ciclos de CPU cuando algunos de los datos de contexto deben recalcularse cada vez que alguien llama a un método flyweight.
          • El código se vuelve mucho más complicado.
        • Diagrama UML
      • Proxy
        • Función
          • Un proxy controla el acceso al objeto original, lo que le permite realizar algo antes o después de que la solicitud llegue al objeto original.
        • Cuando utilizarlo
          • nicialización diferida (proxy virtual). Esto es cuando tiene un objeto de servicio pesado que desperdicia recursos del sistema al estar siempre activo, aunque solo lo necesite de vez en cuando.
          • Ejecución local de un servicio remoto (proxy remoto). Esto es cuando el objeto de servicio se encuentra en un servidor remoto.
        • Características
          • Clase que funciona como interfaz hacia cualquier otra cosa:
            • una conexión a internet
            • Un archivo en disco
            • Recurso costo
            • Recurso imposible de duplicar
        • Ventajas
          • Puede controlar el objeto de servicio sin que los clientes lo sepan.
          • Puede administrar el ciclo de vida del objeto de servicio cuando a los clientes no les importa.
          • El proxy funciona incluso si el objeto de servicio no está listo o no está disponible.
          • Principio abierto / cerrado .
        • Desventajas
          • El código puede volverse más complicado ya que necesita introducir muchas clases nuevas.
          • La respuesta del servicio podría retrasarse.
        • Diagrama UML

Imágenes y archivos del mapa

  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF
  • PATRONES DE DISEÑO GoF

Información

Descripción
Mapa Mental sobre PATRONES DE DISEÑO GoF, creado por Jose Cervera el 09/09/2019.
Creado por
Jose Cervera
Visitas
0
Valoración

Más sobre Patrones de diseño

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?