Bloque 3 - Tema 5: POO y Principios SOLID
41 Questions
0 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 Intérprete en el contexto descrito?

  • Navegar por colecciones de datos de manera eficiente.
  • Mantener la posición actual en un recorrido de lista.
  • Controlar las interacciones entre múltiples objetos.
  • Construir árboles sintácticos de expresiones. (correct)

¿Qué rol desempeña el objeto Iterador en un patrón Iterador?

  • Proporcionar una implementación concreta del agregado.
  • Persistir la información del agregado.
  • Exponer la estructura interna de la lista.
  • Recorrer la lista y acceder a sus elementos. (correct)

¿Qué se busca evitar al utilizar el patrón Mediador?

  • El uso de múltiples agregados.
  • La implementación de diferentes tipos de iteradores.
  • El bajo acoplamiento entre los objetos.
  • Las interacciones complejas entre los objetos. (correct)

¿Cuál de los siguientes no es un participante en el patrón Iterador?

<p>Facilitador (D)</p> Signup and view all the answers

¿Qué característica principal proporciona el patrón Iterador al gestionar colecciones de datos?

<p>Facilitar múltiples tipos de recorridos sin modificar la colección. (D)</p> Signup and view all the answers

¿Qué es el Cliente en el contexto del patrón de diseño mencionado?

<p>La clase que llama a la factoría para crear productos. (B)</p> Signup and view all the answers

¿Qué define la FactoríaAbstracta?

<p>Las interfaces de las factorías y métodos para obtener objetos. (B)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre las FactoríasConcretas es verdadera?

<p>Permiten la creación de diferentes familias de productos. (C)</p> Signup and view all the answers

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

<p>Definir las interfaces para la familia de productos genéricos. (D)</p> Signup and view all the answers

¿Qué representa el ProductoConcreto en el patrón de diseño mencionado?

<p>Una implementación específica de un producto. (B)</p> Signup and view all the answers

¿Qué problema busca resolver el patrón Constructor?

<p>La creación de objetos complejos a partir de un objeto fuente. (B)</p> Signup and view all the answers

¿Cuál es la principal motivación para usar el patrón Constructor según el contenido?

<p>La necesidad de interpretar varios tipos de documentos. (B)</p> Signup and view all the answers

¿Cuál es el propósito principal del patrón Constructor?

<p>Facilitar la creación de objetos complejos sin modificar el lector. (C)</p> Signup and view all the answers

¿Qué papel tiene el ConstructorConcreto en el patrón Constructor?

<p>Construye y ensambla las partes del producto. (B)</p> Signup and view all the answers

En el patrón Factory Method, ¿qué se centraliza en una clase constructora?

<p>La creación de objetos de un subtipo determinado. (D)</p> Signup and view all the answers

¿Qué aplicación tiene el patrón Factory Method en un framework?

<p>Facilitar la creación de instancias de clases abstractas sin conocer los detalles. (D)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones describe mejor la motivación detrás del patrón Constructor?

<p>El algoritmo de creación debe ser independiente de las partes que lo componen. (A)</p> Signup and view all the answers

En la aplicabilidad del patrón Factory Method, ¿qué limita la previsión de una clase de objetos?

<p>La naturaleza dinámica de las subclases que deben especificar objetos. (A)</p> Signup and view all the answers

¿Qué elemento en el patrón Constructor se encarga de coordinar la construcción del objeto?

<p>El Director. (A)</p> Signup and view all the answers

¿Qué representa el Producto en el patrón Constructor?

<p>El objeto complejo que se está creando. (B)</p> Signup and view all the answers

¿Cuál de las siguientes opciones no es un participante del patrón Constructor?

<p>Gestor. (D)</p> Signup and view all the answers

¿Qué permite el patrón Adaptador en el contexto del software?

<p>Permitir que clases con interfaces incompatibles trabajen juntas. (B)</p> Signup and view all the answers

¿Cuál es una situación en la que se aplica el patrón Adaptador?

<p>Cuando se desea reutilizar una clase cuya interfaz no coincide con la requerida. (C)</p> Signup and view all the answers

¿Quién define la interfaz específica del dominio en el patrón Adaptador?

<p>El Target. (A)</p> Signup and view all the answers

¿Cuál de los siguientes roles NO es parte de la estructura del patrón Adaptador?

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

¿Qué realiza el objeto adaptador en el patrón Adaptador?

<p>Convierte las peticiones a la interfaz del objeto adaptado. (D)</p> Signup and view all the answers

¿Qué patrón se menciona como una alternativa para desacoplar abstracciones de sus implementaciones?

<p>Bridge. (D)</p> Signup and view all the answers

¿Cuál es el objetivo del patrón Bridge?

<p>Permitir cambios independientes entre la abstracción y su implementación. (C)</p> Signup and view all the answers

¿Qué se utiliza habitual y frecuentemente para acomodar la necesidad de múltiples implementaciones?

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

¿Cuál de las siguientes afirmaciones describe mejor el papel del Client en el patrón Adaptador?

<p>Colabora con la conformación de objetos para la interfaz Target. (B)</p> Signup and view all the answers

¿Cuál de las siguientes opciones es un componente del patrón Adaptador?

<p>Interfaz específica del dominio. (D)</p> Signup and view all the answers

¿Cuál es el rol del 'Cliente' en el patrón descrito?

<p>Inicia la petición que busca un responsable (C)</p> Signup and view all the answers

¿Qué se busca lograr con el patrón 'Comando'?

<p>Encapsular una petición como un objeto para facilitar su procesamiento (A)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre el Manejador es correcta?

<p>Define la interfaz para manejar las peticiones (A)</p> Signup and view all the answers

En el contexto del patrón descrito, ¿qué significa que el conjunto de objetos puede ser especificado de forma dinámica?

<p>Los objetos pueden cambiar dependiendo del contexto de la petición (D)</p> Signup and view all the answers

¿Cuál es una aplicación del patrón Comando?

<p>Mantener un registro de peticiones realizadas (D)</p> Signup and view all the answers

¿Qué ocurre si un ManejadorConcreto no puede manejar una petición?

<p>Busca al siguiente Manejador en la cadena (D)</p> Signup and view all the answers

¿Cuál de las siguientes no es una característica del patrón Comando?

<p>Fijar un receptor específico a una operación (B)</p> Signup and view all the answers

En el patrón descrito, ¿qué función tiene el ManejadorConcreto?

<p>Define las responsabilidades de manejo de peticiones (B)</p> Signup and view all the answers

¿Qué contexto se ilustra al mencionar objetos receptores y la información a mostrar?

<p>La interacción del usuario con la interfaz (D)</p> Signup and view all the answers

¿Cómo se encapsula una petición en el patrón Comando?

<p>Como un objeto que incluye todos los detalles de la petición (A)</p> Signup and view all the answers

Flashcards

Patrón de diseño Factoría

Un patrón de diseño que permite la creación de objetos complejos sin especificar su clase exacta. El cliente solicita un objeto a una fábrica abstracta, que a su vez redirige la petición a una fábrica concreta que devuelve el objeto deseado.

Factoría Abstracta

Interfaz para crear objetos, define un método para cada tipo de producto.

Factoría Concreta

Implementa la interfaz de la fábrica abstracta para crear un tipo específico de producto.

Producto Abstracto

Define la interfaz para una familia de objetos relacionados o dependientes.

Signup and view all the flashcards

Producto Concreto

Implementa la interfaz Producto Abstracto, creando un producto específico.

Signup and view all the flashcards

Cliente (Patrón de Diseño Factoría)

La clase que solicita un objeto a la fábrica.

Signup and view all the flashcards

Patrón de Diseño Builder

Permite crear objetos complejos en pasos secuenciales. El cliente crea el objeto pieza por pieza usando una interfaz común.

Signup and view all the flashcards

Patrón Constructor

Proporciona una forma de crear objetos complejos sin exponer los detalles de la construcción. Permite añadir nuevas especificaciones de un lenguaje sin modificar el lector.

Signup and view all the flashcards

Constructor (Patrón Constructor)

Interfaz abstracta para construir partes de un objeto complejo.

Signup and view all the flashcards

ConstructorConcreto (Patrón Constructor)

Implementa la interfaz del Constructor, construyendo y ensamblando partes del producto.

Signup and view all the flashcards

Director (Patrón Constructor)

Construye un objeto a través de la interfaz del Constructor.

Signup and view all the flashcards

Producto (Patrón Constructor)

Representa el objeto complejo bajo construcción.

Signup and view all the flashcards

Patrón Factory Method

Centraliza la creación de objetos de un subtipo específico en una clase constructora.

Signup and view all the flashcards

Framework (Patrón Factory Method)

Un conjunto de clases que provee una estructura y soporte para desarrollo. Generalmente el responsable de la creación de objetos.

Signup and view all the flashcards

Aplicabilidad (Patrón Factory Method)

Clases no pueden prever el tipo de objetos que tienen que crear. Usualmente las subclases especifican los tipos de objetos creados.

Signup and view all the flashcards

Documentación de aplicaciones

Un tipo de información específica que un framework de aplicaciones puede soportar, pero que no puede conocer a priori.

Signup and view all the flashcards

Patrón Adaptador

Permite que clases con interfaces incompatibles puedan trabajar juntas.

Signup and view all the flashcards

Interfaz incompatible

Las interfaces de dos o más clases no son compatibles entre sí.

Signup and view all the flashcards

Clase Adaptadora

Clase que hereda de la clase a adaptar y ofrece una interfaz diferente.

Signup and view all the flashcards

Objeto Adaptador

Contiene uno o más objetos de la clase a adaptar.

Signup and view all the flashcards

Target

Define la interfaz específica que necesita la aplicación.

Signup and view all the flashcards

Client

Colabora con la conformación de objetos para la interfaz Target.

Signup and view all the flashcards

Adaptee

Clase con la interfaz existente que necesita ser adaptada.

Signup and view all the flashcards

Adapter

Adapta la interfaz de Adaptee a la interfaz Target.

Signup and view all the flashcards

Reutilización de código

Utilizar un código existente sin modificarlo.

Signup and view all the flashcards

Desacoplar Abstracción e Implementación

Separar el cómo se hace de la definición.

Signup and view all the flashcards

Patrón Iterador

Un patrón de diseño que define una interfaz para acceder secuencialmente a los elementos de una colección, sin exponer su estructura interna.

Signup and view all the flashcards

Agregado (Patrón Iterador)

Una clase que define la interfaz para crear un objeto Iterador.

Signup and view all the flashcards

Iterador (Patrón Iterador)

Una clase que define la interfaz para acceder y recorrer los elementos de una colección.

Signup and view all the flashcards

Patrón Mediador

Un patrón de diseño que coordina la comunicación entre varios objetos, evitando la necesidad de referencias directas entre ellos.

Signup and view all the flashcards

Beneficios del Mediador

Reduce el acoplamiento entre objetos, facilita la variación de la interacción entre ellos y simplifica la gestión de complejas relaciones.

Signup and view all the flashcards

Cadena de Responsabilidad

Un patrón de diseño que permite que una serie de objetos tengan la oportunidad de manejar una solicitud. Si un objeto no puede manejar la solicitud, se la pasa al siguiente objeto en la cadena.

Signup and view all the flashcards

¿Para qué sirve la Cadena de Responsabilidad?

Este patrón nos permite manejar eventos sin saber de antemano quién es el responsable de atenderlo. Es útil para situaciones donde necesitamos determinar la respuesta adecuada según la ubicación o tipo de evento.

Signup and view all the flashcards

¿Cuándo utilizar el patrón Cadena de Responsabilidad?

Este patrón es ideal para situaciones donde no se conoce a priori quién debe manejar la solicitud. Si la respuesta depende del tipo de evento o su ubicación, este patrón resulta útil.

Signup and view all the flashcards

Cliente (Cadena de Responsabilidad)

El objeto que inicia la solicitud. Busca al responsable de procesarla dentro de la cadena.

Signup and view all the flashcards

Manejador (Cadena de Responsabilidad)

Define la interfaz que deben implementar los manejadores concretos. Se encargan de procesar las solicitudes.

Signup and view all the flashcards

Manejador Concreto (Cadena de Responsabilidad)

Implementa la interfaz del manejador. Puede procesar la solicitud si es responsable, o la pasa al siguiente manejador.

Signup and view all the flashcards

Patrón Comando

Un patrón de diseño que permite encapsular una solicitud como un objeto. Esto facilita la parametrización de métodos, la creación de colas de peticiones y la gestión de operaciones.

Signup and view all the flashcards

Motivos para usar el Patrón Comando

Este patrón es útil para parametrizar objetos con acciones, ejecutar peticiones en diferentes momentos y controlar el flujo de peticiones.

Signup and view all the flashcards

Ejemplos de Comando

Los comandos se utilizan en varios contextos, como intérpretes de comandos, gestores de bases de datos y protocolos de servidores web.

Signup and view all the flashcards

Beneficios del Patrón Comando

Permite parametrizar objetos con acciones, crear colas de peticiones, realizar un seguimiento de operaciones y deshacerlas fácilmente.

Signup and view all the flashcards

Study Notes

Bloque 3 - Tema 5

  • Diseño y programación orientada a objetos. Elementos y componentes de software (objetos, clases, herencia, métodos, sobrecarga).
  • Ventajas e inconvenientes de la orientación a objetos.
  • Patrones de diseño y Lenguaje de modelado unificado (UML).

Principios de programación

  • Principios SOLID: Son cinco principios de diseño orientados a la comprensión, flexibilidad y mantenibilidad del software.

    • Single Responsibility Principle (SRP): Un módulo de software debe tener una y solo una razón para cambiar.
    • Open/Closed Principle (OCP): Los módulos deben ser abiertos para su extensión, pero cerrados para su modificación.
    • Liskov Substitution Principle (LSP): Las subclases deben poder usarse en lugar de sus superclases sin afectar el comportamiento del programa.
    • Interface Segregation Principle (ISP): Varias interfaces especializadas son mejores que una interfaz general para clientes
    • Dependency Inversion Principle (DIP): Las dependencias deben basarse en abstracciones, no en implementaciones concretas.
  • Don't Repeat Yourself (DRY): Evitar repeticiones de código.

  • Inversion of Control (IoC): Delegar la gestión del flujo de control a otros componentes.

  • Your Aren't Gona Need It (YAGNI): No agregar funcionalidades extras hasta que no sean necesarias.

  • Keep It Simple, Stupid (KISS): Minimizar los errores y complejidad.

  • Ley de Demeter (LoD): Los objetos no deben conocer la estructura interna de los objetos con los que colaboran.

Elementos y componentes Software

  • Clases: Son plantillas para crear objetos con atributos (datos) y métodos (acciones).
  • Objetos: Instancias de una clase, con valores concretos para los atributos.
  • Métodos: Operaciones que los objetos pueden realizar.
  • Atributos: Propiedades de los objetos.
  • Mensajes: Son las solicitudes que los objetos utilizan para comunicarse entre ellos.
  • Herencia: Es una relación "es un" entre clases para compartir atributos y métodos (heredando atributos y métodos de clases padre o superclases).
  • Polimorfismo: Permite que objetos de diferentes clases respondan al mismo mensaje de forma diferente.
  • Sobrecarga: Permite definir varios métodos con el mismo nombre pero con diferentes parámetros.

Diagramas UML

  • Diagramas de Estructura (vista estática): Representan la estructura de los componentes del programa (clases, objetos, sus relaciones).
    • Diagrama de clases: describe las clases y sus relaciones en el sistema.
    • Diagrama de Objetos: describe los objetos y sus valores en un instante determinado.
    • Diagrama de Componentes: muestra los componentes del sistema.
    • Diagrama de Despliegue: muestra la distribución física de los componentes.
    • Diagrama de Estructura Compuesta: expande la estructura interna de una clase.
  • Diagramas de Comportamiento (vista dinámica): Representan el comportamiento de los componentes del programa.
    • Diagrama de Casos de Uso: representa cómo los usuarios interactúan con el sistema.
    • Diagrama de Actividad: describe el flujo de actividades.
    • Diagrama de Maquina de Estado: describe cómo los objetos cambian de estado dependiendo de los eventos.
    • Diagrama de Secuencia: describe la secuencia de mensajes entre los objetos en el tiempo.
    • Diagrama de Interacción: describe la interacción entre los objetos, pero sin orden de tiempo.
    • Diagrama de Comunicación: representación alternativa del diagrama de interacción centrada en el intercambio de mensajes.
    • Diagrama de Tiempos: muestra el cambio en los atributos de los objetos en el tiempo.

Patrones de Diseño

  • Creacionales: Se enfocan en la creación de objetos.
  • Estructurales: Tratan la manera que los objetos se combinan para formar estructuras mayores.
  • Comportamentales: Manejan interacciones y responsabilidades entre objetos.

Ventajas e Inconvenientes (Orientación a objetos):

  • Ventajas:
    • Reutilización de código y diseño.
    • Facilidad de mantenimiento y extensión.
    • Independencia de las plataformas.
  • Inconvenientes:
    • El uso de lenguajes orientados a objetos no evita los malos análisis, diseños o programas.

Studying That Suits You

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

Quiz Team

Related Documents

B3T5 POO Past Paper (PDF)

Description

Explora los conceptos fundamentales de la programación orientada a objetos, incluyendo sus componentes y patrones de diseño. Además, analiza los principios SOLID que son esenciales para el diseño de software limpio y mantenible. Este cuestionario pondrá a prueba tu entendimiento sobre los beneficios y desventajas de la POO y su implementación efectiva.

More Like This

Use Quizgecko on...
Browser
Browser