Resumen de Diseño de Aplicaciones 1

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

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

More Like This

UML Classes Basics
8 questions

UML Classes Basics

KidFriendlyClarinet avatar
KidFriendlyClarinet
Object-Oriented Concepts and UML
40 questions
Use Quizgecko on...
Browser
Browser