Resumen de Diseño de Aplicaciones 1
24 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es la función principal del patrón Builder?

  • Mantener un conjunto de algoritmos
  • Definir el esqueleto de un algoritmo
  • Proporcionar una interfaz unificada para subsistemas
  • Separar la creación de un objeto de su representación (correct)
  • El patrón Template Method permite modificar algoritmos de manera compleja.

    False (B)

    ¿Qué beneficia el uso del patrón Strategy?

    Permite elegir y cambiar algoritmos dinámicamente en tiempo de ejecución.

    El patrón _________ proporciona una interfaz simple para un subsistema complejo.

    <p>Fachada</p> Signup and view all the answers

    Relaciona los patrones de diseño con su descripción:

    <p>Builder = Separar la creación de un objeto de su representación Template Method = Definir el esqueleto de un algoritmo Strategy = Elegir algoritmos dinámicamente Fachada = Interfaz unificada para subsistemas</p> Signup and view all the answers

    ¿Qué patrón ayuda a reducir la complejidad y dependencias entre subsistemas?

    <p>Fachada (A)</p> Signup and view all the answers

    Un Director en el patrón Builder tiene el control total de la creación de un objeto.

    <p>True (A)</p> Signup and view all the answers

    Menciona un escenario en el que se aplique el patrón Fachada.

    <p>Cuando se necesita proporcionar una interfaz simple para un subsistema complejo.</p> Signup and view all the answers

    ¿Cuál es la clasificación de los patrones de diseño?

    <p>Creacionales, Comportamiento, Estructurales (B)</p> Signup and view all the answers

    El patrón Singleton permite que una clase tenga múltiples instancias.

    <p>False (B)</p> Signup and view all the answers

    ¿Qué hace el patrón Builder?

    <p>Permite la creación de objetos complejos a partir de un objeto fuente.</p> Signup and view all the answers

    El patrón de diseño __________ se encarga de la creación de objetos a partir de una interfaz común.

    <p>Builder</p> Signup and view all the answers

    ¿Cuál es una de las ventajas del patrón Builder?

    <p>Reduce el acoplamiento (D)</p> Signup and view all the answers

    El patrón Composite se utiliza únicamente con el patrón Builder.

    <p>False (B)</p> Signup and view all the answers

    ¿Qué rol desempeña el Director en el patrón Builder?

    <p>Construye un objeto usando el patrón Builder.</p> Signup and view all the answers

    Relacione los términos con sus descripciones:

    <p>Singleton = Garantiza una única instancia de una clase Builder = Abstrae la creación de objetos complejos Director = Construye objetos complejos Producto = El objeto complejo bajo construcción</p> Signup and view all the answers

    ¿Cuál es el principio que establece que una clase debe tener una única razón para cambiar?

    <p>Principio de responsabilidad única (C)</p> Signup and view all the answers

    El Principio de Abierto-Cerrado establece que un módulo debe ser cerrado para la extensión.

    <p>False (B)</p> Signup and view all the answers

    ¿Qué asegura el Principio de Sustitución de Liskov?

    <p>Que las referencias a clases base puedan usar objetos de clases derivadas sin problemas.</p> Signup and view all the answers

    El principio que sugiere que las dependencias en un sistema deben ser hacia módulos más estables se llama principio de __________.

    <p>inversión de dependencias</p> Signup and view all the answers

    Relaciona cada principio con su descripción correspondiente:

    <p>Responsabilidad única = Una clase debe tener solo una razón para cambiar Abierto-cerrado = Un módulo debe ser abierto para la extensión, cerrado para la modificación Sustitución de Liskov = Permite sustituir subclases por clases base sin alterar el comportamiento del programa Segregación de interfaz = Define la funcionalidad de un componente en una interfaz separada de su implementación</p> Signup and view all the answers

    ¿Cuál de los siguientes principios enfatiza la separación entre la interfaz y la implementación?

    <p>Principio de segregación de interfaz (C)</p> Signup and view all the answers

    La cohesión baja se relaciona generalmente con tener múltiples responsabilidades en una clase.

    <p>True (A)</p> Signup and view all the answers

    ¿Qué representa el Principio de Dependencias Acíclicas?

    <p>La estructura de dependencia entre paquetes debe formar un grafo dirigido y acíclico.</p> Signup and view all the answers

    Flashcards

    Método Move

    Mover un método de una clase a otra cuando un método es utilizado o será utilizado con mayor frecuencia por otra clase. Se reemplaza el método original por una delegación.

    Patrones de Diseño

    Soluciones reutilizables a problemas de diseño comunes en programación. Permiten generar un vocabulario común para resolver problemas y agrupan soluciones similares en categorías.

    Patrón Creacional

    Patrón de diseño que se centra en la creación de objetos.

    Patrón Estructural

    Patrón de diseño que se centra en la composición de clases.

    Signup and view all the flashcards

    Patrón Comportamiento

    Patrón de diseño que se centra en la interacción de objetos.

    Signup and view all the flashcards

    Singleton

    Patrón creacional que asegura que una clase solo tenga una instancia y provee un punto de acceso global a ella.

    Signup and view all the flashcards

    Patrón Builder

    Patrón creacional para crear objetos complejos a partir de un conjunto de partes.

    Signup and view all the flashcards

    Ventajas del Patrón Builder

    Reduce el acoplamiento y permite variar la representación interna de un objeto complejo sin afectar la interfaz común.

    Signup and view all the flashcards

    Builder (Patrón)

    Patrón de diseño que separa la construcción de un objeto complejo de su representación. Permite construir objetos paso a paso.

    Signup and view all the flashcards

    ConcreteBuilder (Patrón)

    Clase específica que implementa la construcción de un objeto, con código para crear una estructura interna.

    Signup and view all the flashcards

    Template Method (Patrón)

    Patrón de diseño que define el esqueleto de un algoritmo, delegando algunos pasos a subclases.

    Signup and view all the flashcards

    Strategy (Patrón)

    Patrón de diseño que permite al cliente intercambiar algoritmos dinámicamente en tiempo de ejecución.

    Signup and view all the flashcards

    Facade (Patrón)

    Patrón de diseño que proporciona una interfaz unificada a un conjunto de interfaces de un subsistema.

    Signup and view all the flashcards

    Subsistema Complejo

    Un conjunto de componentes interrelacionados con una funcionalidad compleja.

    Signup and view all the flashcards

    Director (Patrón)

    Clase que controla la construcción pas a paso del objeto con el builder; lo devuelve cuando está finalizado.

    Signup and view all the flashcards

    Independencia del código de construcción

    El código para construir un objeto no depende de la representación interna del objeto.

    Signup and view all the flashcards

    Principio de Responsabilidad Única

    Una clase solo debe tener una razón para cambiar. Si una clase tiene más de una responsabilidad, tiende a tener baja cohesión.

    Signup and view all the flashcards

    Principio Abierto/Cerrado

    Las entidades de software deben ser abiertas para la extensión y cerradas para la modificación.

    Signup and view all the flashcards

    Principio de Sustitución de Liskov

    Los métodos que utilizan referencias a clases base deben poder utilizar objetos de clases derivadas sin saberlo.

    Signup and view all the flashcards

    Principio de la Separación de la Interfaz

    Un componente consta de interfaz (funcionalidad) e implementación (código).

    Signup and view all the flashcards

    Principio de Dependencias Acíclicas

    Las dependencias entre paquetes deben formar un grafo dirigido acíclico.

    Signup and view all the flashcards

    Cohesión

    Grado en que los elementos de un módulo están interrelacionados.

    Signup and view all the flashcards

    Paquete estable

    Un paquete que rara vez cambia, o cambia poco.

    Signup and view all the flashcards

    Inversión de dependencias

    Un principio de diseño para resolver ciclos de dependencias.

    Signup and view all the flashcards

    Study Notes

    Resumen del examen D1

    • El documento es un resumen de Diseño de aplicaciones 1 de la Universidad ORT Uruguay.
    • El documento incluye un índice detallado de los temas cubiertos en el examen.
    • El documento se descarga de studocu.com

    Conceptos POO

    • Diseño Orientado a Objetos (DOO): Representa el problema del mundo real en el software.
    • Abstracción: Simplificación de la realidad en clases y objetos.
    • Información oculta: Minimizar la visibilidad de los secretos del objeto.
    • Modularización: Dividir la aplicación en módulos más pequeños.
    • Encapsulación: Combinar características y comportamiento en una clase.
    • Cohesión: Medida de la relación entre las responsabilidades de una clase.
    • Acoplamiento: Medida de la relación entre clases y paquetes.

    UML - Paquetes, Clases, Interacción

    • Paquetes/Espacios de nombres: Agrupan elementos relacionados.
    • Diagramas de interacción: Describen cómo colaboran los objetos.
    • Diagramas de secuencia: Muestra el orden temporal de las interacciones.
    • Diagramas de colaboración: Muestra la estructura del sistema.

    Relaciones entre clases

    • Asociación: Conexión estructural entre los objetos.
    • Asociación unidireccional/bidireccional: La dirección del sentido de la asociación.
    • Multiplicidades: Número de instancias de una clase relacionadas con otra instancia.

    Agregación y Composición

    • Agregación: Relación entre un todo y sus partes. El componente puede existir independientemente.
    • Composición: Relación entre un todo y sus partes. El componente no puede existir sin el todo.

    Dependencia

    • Relación entre cliente y proveedor de servicios.
    • Cliente solicita un servicio.
    • Servidor provee el servicio.

    Clases de asociación: Roles y Constraints

    • Roles: Nombre de un extremo de la asociación.
    • Constraint: Condiciones que se deben cumplir para el modelo.
    • Stereotypes: Clasificación secundaria de objetos.
    • Notas: Información adicional que acompaña al modelo.

    Clean Code

    • El código debe ser eficiente, fácil de leer, cambiar y probar.
    • Selección de nombres: Los nombres de las variables deben ser explícitos.
    • Reglas: Consejos para la selección de nombres de clases, métodos, etc.

    Funciones

    • Debe tener una sola responsabilidad.
    • Debe expresarse con concisión.
    • Ideales entre 0 y 2 parámetros.
    • Evitar booleanos como parámetros.

    Formateo

    • Importante para la legibilidad.
    • Aspectos visuales de las clases y estructuras de datos.
    • Manejo de errores.
    • Manejo de fronteras y Tests

    Refactoring

    • Reestructuración de código para mejorar el diseño sin cambiar la funcionalidad.
    • Motivos y beneficios de aplicar refactoring.
    • Condiciones para aplicar refactoring.

    Patrones de Diseño

    • Clasificación de patrones en creacionales, estructurales y comportamentales.
    • Describir casos de uso de cada patrón con ejemplos concretos.
    • Ventajas y desventajas de aplicar cada patrón.

    GRASP

    • Patrones generales de asignación de responsabilidades en el DOO
    • Experto, Creador, Controlador, Bajo Acoplamiento, Alta Cohesión, Fabricación Pura e Indirección.

    Conceptos y principios de diseño SOLID

    • Principios de diseño software que facilitan la construcción de sistemas robustos y mantenibles.
    • Explicación de principios individuales (SRP, OCP, LSP, ISP, DIP).

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Este resumen abarca los principales conceptos del curso de Diseño de Aplicaciones 1 de la Universidad ORT Uruguay. Se exploran temas de programación orientada a objetos y diagramas UML, esenciales para entender la construcción de software modular y eficiente. Ideal para preparar el examen y repasar los temas principales cubiertos en clase.

    More Like This

    Use Quizgecko on...
    Browser
    Browser