Podcast
Questions and Answers
¿Cuál de los siguientes patrones de diseño permite la comunicación entre dos interfaces incompatibles?
¿Cuál de los siguientes patrones de diseño permite la comunicación entre dos interfaces incompatibles?
- Facade
- Bridge
- Composite
- Adapter (correct)
El patrón Composite permite la creación de estructuras de tipo árbol y trata a los objetos de estas estructuras como objetos individuales.
El patrón Composite permite la creación de estructuras de tipo árbol y trata a los objetos de estas estructuras como objetos individuales.
True (A)
¿Qué es el modelo C4 y cuál es su propósito?
¿Qué es el modelo C4 y cuál es su propósito?
Es un modelo de diseño arquitectónico que ayuda a representar la estructura y relaciones entre los componentes de un sistema.
El patrón __________ permite separar una abstracción de una implementación, optimizando el crecimiento del sistema.
El patrón __________ permite separar una abstracción de una implementación, optimizando el crecimiento del sistema.
Relaciona los patrones de diseño con su descripción:
Relaciona los patrones de diseño con su descripción:
¿Cuál es el primer paso en el trabajo del bloque 2?
¿Cuál es el primer paso en el trabajo del bloque 2?
Los patrones estructurales mejoran la eficiencia del sistema afectando a su parte funcional.
Los patrones estructurales mejoran la eficiencia del sistema afectando a su parte funcional.
¿Qué se debe entregar el día viernes 26/01/2024?
¿Qué se debe entregar el día viernes 26/01/2024?
¿Cuál de los siguientes diagramas permite la visualización general del sistema?
¿Cuál de los siguientes diagramas permite la visualización general del sistema?
El Diagrama de Componentes muestra todos los contenedores del sistema.
El Diagrama de Componentes muestra todos los contenedores del sistema.
¿Qué ventaja ofrece el Modelo C4 en términos de comunicación?
¿Qué ventaja ofrece el Modelo C4 en términos de comunicación?
El Diagrama de __________ es un diagrama de lujo de datos que identifica los límites del sistema.
El Diagrama de __________ es un diagrama de lujo de datos que identifica los límites del sistema.
Empareja los siguientes tipos de diagramas con su descripción:
Empareja los siguientes tipos de diagramas con su descripción:
¿Cuál de las siguientes afirmaciones es correcta sobre el Modelo C4?
¿Cuál de las siguientes afirmaciones es correcta sobre el Modelo C4?
Los diagramas de alto nivel incluyen detalles específicos de cada función dentro del sistema.
Los diagramas de alto nivel incluyen detalles específicos de cada función dentro del sistema.
Los diagramas de __________ permiten obtener un panorama general del sistema que se va a desarrollar.
Los diagramas de __________ permiten obtener un panorama general del sistema que se va a desarrollar.
¿Cuál de los siguientes patrones permite agregar funcionalidades a objetos sin usar la herencia?
¿Cuál de los siguientes patrones permite agregar funcionalidades a objetos sin usar la herencia?
El patrón Flyweight se utiliza para crear objetos pesados y consume mucha memoria.
El patrón Flyweight se utiliza para crear objetos pesados y consume mucha memoria.
¿Qué patrón proporciona una interfaz simplificada a un grupo de interfaces en un sistema?
¿Qué patrón proporciona una interfaz simplificada a un grupo de interfaces en un sistema?
El patrón ______ permite guardar y restaurar el estado previo de un objeto.
El patrón ______ permite guardar y restaurar el estado previo de un objeto.
Relaciona cada patrón con su descripción correspondiente:
Relaciona cada patrón con su descripción correspondiente:
¿Qué debe hacerse antes de aplicar el patrón Flyweight?
¿Qué debe hacerse antes de aplicar el patrón Flyweight?
El patrón Proxy permite realizar acciones antes y después de la ejecución del objeto original.
El patrón Proxy permite realizar acciones antes y después de la ejecución del objeto original.
¿Qué rol desempeña el Caretaker en el patrón Memento?
¿Qué rol desempeña el Caretaker en el patrón Memento?
¿Cuál es la función principal del patrón Builder?
¿Cuál es la función principal del patrón Builder?
El patrón Prototype permite la creación de nuevos objetos basados en un objeto existente.
El patrón Prototype permite la creación de nuevos objetos basados en un objeto existente.
¿Qué objeto crea internamente el ObjectBuilder después de la primera llamada de creación?
¿Qué objeto crea internamente el ObjectBuilder después de la primera llamada de creación?
El patrón __________ permite la creación de nuevos objetos, pero partiendo de un prototipo.
El patrón __________ permite la creación de nuevos objetos, pero partiendo de un prototipo.
Empareja los siguientes patrones de diseño con su descripción:
Empareja los siguientes patrones de diseño con su descripción:
¿Cuál es la función principal del patrón Singleton en programación?
¿Cuál es la función principal del patrón Singleton en programación?
El patrón Memento permite restaurar el estado de un objeto sin exponer su implementación interna.
El patrón Memento permite restaurar el estado de un objeto sin exponer su implementación interna.
¿Qué método se utiliza para solicitar la instancia en un Singleton?
¿Qué método se utiliza para solicitar la instancia en un Singleton?
El __________ permite a los clientes acceder a la misma instancia de una conexión de la base de datos.
El __________ permite a los clientes acceder a la misma instancia de una conexión de la base de datos.
Empareja los conceptos de programación con su definición:
Empareja los conceptos de programación con su definición:
¿Qué ocurre si se llama a getInstance cuando ya existe una instancia del Singleton?
¿Qué ocurre si se llama a getInstance cuando ya existe una instancia del Singleton?
El constructor de una clase Singleton debe ser público.
El constructor de una clase Singleton debe ser público.
¿Cuál es el tipo de acceso que proporciona el Singleton a su instancia?
¿Cuál es el tipo de acceso que proporciona el Singleton a su instancia?
¿Qué método se utiliza para realizar consultas a la base de datos en la clase Application?
¿Qué método se utiliza para realizar consultas a la base de datos en la clase Application?
La clase Application crea diferentes instancias de Database al utilizar el método getInstance() varias veces.
La clase Application crea diferentes instancias de Database al utilizar el método getInstance() varias veces.
¿Qué patrón de diseño permite la creación de familias de objetos relacionados sin especificar sus clases concretas?
¿Qué patrón de diseño permite la creación de familias de objetos relacionados sin especificar sus clases concretas?
El método de fábrica permite crear un objeto, pero deja que las __________ alteren el tipo de objeto a crear.
El método de fábrica permite crear un objeto, pero deja que las __________ alteren el tipo de objeto a crear.
Relaciona los siguientes conceptos con su descripción:
Relaciona los siguientes conceptos con su descripción:
¿Qué se debe hacer primero cuando se usa el patrón de Fábrica Abstracta?
¿Qué se debe hacer primero cuando se usa el patrón de Fábrica Abstracta?
El cliente puede solicitar productos de diferentes fábricas para asegurar compatibilidad.
El cliente puede solicitar productos de diferentes fábricas para asegurar compatibilidad.
¿Cuál es la función de la lógica de regulación (throttling) en el método query?
¿Cuál es la función de la lógica de regulación (throttling) en el método query?
Flashcards
Diagrama de Contexto
Diagrama de Contexto
Diagrama de nivel superior que muestra la vista general del sistema y sus límites.
Contenedores (Modelo C4)
Contenedores (Modelo C4)
Componentes autónomos de un sistema, como bases de datos, servicios o aplicaciones.
Diagrama de Contenedores
Diagrama de Contenedores
Diagrama que describe los contenedores de un sistema, sus interacciones y estructura.
Diagrama de Componentes
Diagrama de Componentes
Signup and view all the flashcards
Modelo C4
Modelo C4
Signup and view all the flashcards
Ventajas del Modelo C4
Ventajas del Modelo C4
Signup and view all the flashcards
Diagrama de Alto Nivel
Diagrama de Alto Nivel
Signup and view all the flashcards
Diagrama de Bajo Nivel
Diagrama de Bajo Nivel
Signup and view all the flashcards
Diagramas de arquitectura de bajo nivel
Diagramas de arquitectura de bajo nivel
Signup and view all the flashcards
Patrones de diseño estructurales
Patrones de diseño estructurales
Signup and view all the flashcards
Patrón Adapter (Adaptador)
Patrón Adapter (Adaptador)
Signup and view all the flashcards
Patrón Bridge (Puente)
Patrón Bridge (Puente)
Signup and view all the flashcards
Patrón Composite (Compuesto)
Patrón Composite (Compuesto)
Signup and view all the flashcards
Diagramas de Secuencia
Diagramas de Secuencia
Signup and view all the flashcards
Diagramas de Clase
Diagramas de Clase
Signup and view all the flashcards
Decorator (Decorator)
Decorator (Decorator)
Signup and view all the flashcards
Facade (Fachada)
Facade (Fachada)
Signup and view all the flashcards
Flyweight (Peso Ligero)
Flyweight (Peso Ligero)
Signup and view all the flashcards
Proxy (Representante)
Proxy (Representante)
Signup and view all the flashcards
Memento (Recuerdo)
Memento (Recuerdo)
Signup and view all the flashcards
Pedidos en una tienda
Pedidos en una tienda
Signup and view all the flashcards
Objeto ligero
Objeto ligero
Signup and view all the flashcards
Proceso de un pedido
Proceso de un pedido
Signup and view all the flashcards
¿Qué es el patrón Singleton?
¿Qué es el patrón Singleton?
Signup and view all the flashcards
¿Cómo funciona Singleton?
¿Cómo funciona Singleton?
Signup and view all the flashcards
Método estático getInstance()
Método estático getInstance()
Signup and view all the flashcards
Campo estático 'instance'
Campo estático 'instance'
Signup and view all the flashcards
Constructor privado
Constructor privado
Signup and view all the flashcards
Bloqueo de hilos
Bloqueo de hilos
Signup and view all the flashcards
Lógica de negocio
Lógica de negocio
Signup and view all the flashcards
Ejemplo: Base de datos
Ejemplo: Base de datos
Signup and view all the flashcards
Builder (Constructor)
Builder (Constructor)
Signup and view all the flashcards
Prototype (Prototipo)
Prototype (Prototipo)
Signup and view all the flashcards
Chain of responsibility (Cadena de responsabilidad)
Chain of responsibility (Cadena de responsabilidad)
Signup and view all the flashcards
Comand (Comando)
Comand (Comando)
Signup and view all the flashcards
Iterator (Iterador)
Iterator (Iterador)
Signup and view all the flashcards
Método de Fábrica
Método de Fábrica
Signup and view all the flashcards
Fábrica Abstracta
Fábrica Abstracta
Signup and view all the flashcards
Qué hace el patrón Factory Method?
Qué hace el patrón Factory Method?
Signup and view all the flashcards
Cuándo usar el patrón Factory Method?
Cuándo usar el patrón Factory Method?
Signup and view all the flashcards
Qué hace el patrón Abstract Factory?
Qué hace el patrón Abstract Factory?
Signup and view all the flashcards
Cuándo usar el patrón Abstract Factory?
Cuándo usar el patrón Abstract Factory?
Signup and view all the flashcards
¿Qué diferencia hay entre Factory Method y Abstract Factory?
¿Qué diferencia hay entre Factory Method y Abstract Factory?
Signup and view all the flashcards
¿Cuándo elegir Factory Method sobre Abstract Factory?
¿Cuándo elegir Factory Method sobre Abstract Factory?
Signup and view all the flashcards
Study Notes
Modelo C4
- Modelo de arquitectura de software, con diagramas de alto nivel para describir el sistema.
- Incluye diagramas de contexto, contenedores, componentes y código.
Diagrama de Contexto
- Visualiza un panorama general del sistema.
- Es un diagrama de flujo de datos (DFD) de alto nivel.
- Identifica los alcances y límites del sistema.
- Ejemplo: Sistema de cajeros automáticos, mostrando los sistemas de contabilidad, seguridad y mantenimiento, y las bases de datos de cuentas y de utilización, así como los usuarios.
Diagrama de Contenedores
- Especifica cada contenedor de alto nivel (bases de datos, servicios, aplicaciones).
- Muestra las interacciones entre los mismos.
- Representa el flujo y estructura del sistema.
- Ejemplo: Diagrama de contenedores para un sistema bancario en línea, mostrando las interacciones entre la aplicación web, la aplicación móvil, el sistema de correo electrónico, las bases de datos, y sistemas adicionales como la banca principal.
Diagrama de Componentes
- Amplía la forma de trabajo de un contenedor, describiendo su funcionamiento interno.
- No muestra todos los contenedores, solo uno con detalle de comunicación.
- Ejemplo: Diagrama de componentes para la aplicación de API de un sistema bancario en línea, mostrando la comunicación entre el controlador, otros componentes para acceder a la base de datos, y los componentes relacionados con la aplicación web y la aplicación móvil.
Código
- Diagramas de clases del código fuente desarrollado.
- Diagramas de paquetes.
- Relaciones entre clases.
- Se recomienda la generación de diagramas desde el IDE.
Ventajas del Modelo C4
- Jerarquía de abstracción clara y jerárquica para cada uno de los diagramas.
- Comunicación efectiva entre la parte técnica y no técnica.
- Enfoque en los aspectos claves de la arquitectura de software.
- Escalable a cualquier tipo de sistema.
- Facilita la toma de decisiones sobre el diseño y cambios en la arquitectura.
Actividad en Clase
- Grupos de 1-2 para investigar diagramas de alto nivel y plantear ejemplos.
- Grupos de 3-4 para investigar diagramas de bajo nivel y plantear ejemplos.
Diagramas de Arquitectura de Alto Nivel
- Permiten obtener un panorama general del sistema a desarrollar.
- Se utilizan diagramas de despliegue, servicios y componentes.
Diagramas de Arquitectura de Bajo Nivel
- Más específicos en cuanto a la funcionalidad y jerarquía de la interacción de los servicios del software.
- Se utilizan diagramas de secuencia, clases y despliegue detallado.
Patrones de Diseño Estructurales
- Describen la estructura de clases y objetos.
- Permiten crear estructuras más complejas y grandes.
- Mejoran la flexibilidad y eficiencia del sistema.
Adapter (Adaptador)
- Se utiliza para comunicar interfaces o clases incompatibles.
- Convierte una entrada de datos de un tipo a otro.
- Ejemplo: Un adaptador entre un proveedor de información de Bolsa (XML) y un sistema de aplicación (JSON).
Bridge (Puente)
- Separa la abstracción de una implementación.
- Permite un crecimiento independiente y óptimo.
- Ejemplo: Separación de la forma (círculo, cuadrado) de su color (rojo, azul).
Composite (Compuesto)
- Crea estructuras de tipo árbol.
- Los componentes se tratan como objetos individuales.
- Ejemplo: Un pedido complejo con varios artículos (martillo, teléfono, auriculares).
Decorator (Decorator)
- Agrega funcionalidad a los objetos.
- Extensión flexible a la herencia.
- Ejemplo: Agregar funcionalidades de envío por SMS, Facebook o Slack a un sistema de notificaciones.
Facade (Fachada)
- Proporciona una interfaz simplificada a un grupo de interfaces.
- Ejemplo: Interfaz para realizar un pedido en una tienda, que se comunica con varios departamentos (almacén, pagos, envío).
Flyweight (Peso Ligero)
- Crea objetos ligeros, reutilizando partes.
- Mejora el rendimiento de la memoria.
- Ejemplo: Objetos que comparten atributos o recursos.
Proxy (Proxy)
- Controla el acceso a objetos originales.
- Permite ejecutar acciones antes o después de la solicitud.
Memento (Recuerdo)
- Permite guardar y restaurar el estado previo de un objeto.
Patrones de Diseño Creacionales
- Proporcionan mecanismos para la creación de objetos.
- Mejoran la reutilización de código.
Singleton
- Se asegura que una clase tenga una sola instancia.
- Proporciona un punto de acceso global.
Factory Method (Método de Fábrica)
- Define una interfaz para crear objetos.
- Deja que las subclases decidan qué tipo de objeto crear.
Abstract Factory (Fábrica Abstracta)
- Crea familias de objetos relacionados.
- Garantiza la compatibilidad entre objetos.
Builder (Constructor)
- Separa la construcción de un objeto complejo.
- Permite crear diferentes representaciones del objeto.
Prototype (Prototipo)
- Crea nuevos objetos partiendo de un prototipo.
Patrones de Diseño de Comportamiento
- Relacionados con la manera en que los objetos interactúan e intercambian información.
- Incluyen Cadena de responsabilidad, Comando, Iterator, Mediador, Memento, Observer, Estado, Strategy, Template method, Visitor.
Actividad En Clase
- Investigar sobre patrones y ejemplos.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.