Podcast
Questions and Answers
¿Cuál es la función principal del patrón Intérprete en el contexto descrito?
¿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?
¿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?
¿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?
¿Cuál de los siguientes no es un participante en el patrón Iterador?
¿Qué característica principal proporciona el patrón Iterador al gestionar colecciones de datos?
¿Qué característica principal proporciona el patrón Iterador al gestionar colecciones de datos?
¿Qué es el Cliente en el contexto del patrón de diseño mencionado?
¿Qué es el Cliente en el contexto del patrón de diseño mencionado?
¿Qué define la FactoríaAbstracta?
¿Qué define la FactoríaAbstracta?
¿Cuál de las siguientes afirmaciones sobre las FactoríasConcretas es verdadera?
¿Cuál de las siguientes afirmaciones sobre las FactoríasConcretas es verdadera?
¿Cuál es la función principal del ProductoAbstracto?
¿Cuál es la función principal del ProductoAbstracto?
¿Qué representa el ProductoConcreto en el patrón de diseño mencionado?
¿Qué representa el ProductoConcreto en el patrón de diseño mencionado?
¿Qué problema busca resolver el patrón Constructor?
¿Qué problema busca resolver el patrón Constructor?
¿Cuál es la principal motivación para usar el patrón Constructor según el contenido?
¿Cuál es la principal motivación para usar el patrón Constructor según el contenido?
¿Cuál es el propósito principal del patrón Constructor?
¿Cuál es el propósito principal del patrón Constructor?
¿Qué papel tiene el ConstructorConcreto en el patrón Constructor?
¿Qué papel tiene el ConstructorConcreto en el patrón Constructor?
En el patrón Factory Method, ¿qué se centraliza en una clase constructora?
En el patrón Factory Method, ¿qué se centraliza en una clase constructora?
¿Qué aplicación tiene el patrón Factory Method en un framework?
¿Qué aplicación tiene el patrón Factory Method en un framework?
¿Cuál de las siguientes afirmaciones describe mejor la motivación detrás del patrón Constructor?
¿Cuál de las siguientes afirmaciones describe mejor la motivación detrás del patrón Constructor?
En la aplicabilidad del patrón Factory Method, ¿qué limita la previsión de una clase de objetos?
En la aplicabilidad del patrón Factory Method, ¿qué limita la previsión de una clase de objetos?
¿Qué elemento en el patrón Constructor se encarga de coordinar la construcción del objeto?
¿Qué elemento en el patrón Constructor se encarga de coordinar la construcción del objeto?
¿Qué representa el Producto en el patrón Constructor?
¿Qué representa el Producto en el patrón Constructor?
¿Cuál de las siguientes opciones no es un participante del patrón Constructor?
¿Cuál de las siguientes opciones no es un participante del patrón Constructor?
¿Qué permite el patrón Adaptador en el contexto del software?
¿Qué permite el patrón Adaptador en el contexto del software?
¿Cuál es una situación en la que se aplica el patrón Adaptador?
¿Cuál es una situación en la que se aplica el patrón Adaptador?
¿Quién define la interfaz específica del dominio en el patrón Adaptador?
¿Quién define la interfaz específica del dominio en el patrón Adaptador?
¿Cuál de los siguientes roles NO es parte de la estructura del patrón Adaptador?
¿Cuál de los siguientes roles NO es parte de la estructura del patrón Adaptador?
¿Qué realiza el objeto adaptador en el patrón Adaptador?
¿Qué realiza el objeto adaptador en el patrón Adaptador?
¿Qué patrón se menciona como una alternativa para desacoplar abstracciones de sus implementaciones?
¿Qué patrón se menciona como una alternativa para desacoplar abstracciones de sus implementaciones?
¿Cuál es el objetivo del patrón Bridge?
¿Cuál es el objetivo del patrón Bridge?
¿Qué se utiliza habitual y frecuentemente para acomodar la necesidad de múltiples implementaciones?
¿Qué se utiliza habitual y frecuentemente para acomodar la necesidad de múltiples implementaciones?
¿Cuál de las siguientes afirmaciones describe mejor el papel del Client en el patrón Adaptador?
¿Cuál de las siguientes afirmaciones describe mejor el papel del Client en el patrón Adaptador?
¿Cuál de las siguientes opciones es un componente del patrón Adaptador?
¿Cuál de las siguientes opciones es un componente del patrón Adaptador?
¿Cuál es el rol del 'Cliente' en el patrón descrito?
¿Cuál es el rol del 'Cliente' en el patrón descrito?
¿Qué se busca lograr con el patrón 'Comando'?
¿Qué se busca lograr con el patrón 'Comando'?
¿Cuál de las siguientes afirmaciones sobre el Manejador es correcta?
¿Cuál de las siguientes afirmaciones sobre el Manejador es correcta?
En el contexto del patrón descrito, ¿qué significa que el conjunto de objetos puede ser especificado de forma dinámica?
En el contexto del patrón descrito, ¿qué significa que el conjunto de objetos puede ser especificado de forma dinámica?
¿Cuál es una aplicación del patrón Comando?
¿Cuál es una aplicación del patrón Comando?
¿Qué ocurre si un ManejadorConcreto no puede manejar una petición?
¿Qué ocurre si un ManejadorConcreto no puede manejar una petición?
¿Cuál de las siguientes no es una característica del patrón Comando?
¿Cuál de las siguientes no es una característica del patrón Comando?
En el patrón descrito, ¿qué función tiene el ManejadorConcreto?
En el patrón descrito, ¿qué función tiene el ManejadorConcreto?
¿Qué contexto se ilustra al mencionar objetos receptores y la información a mostrar?
¿Qué contexto se ilustra al mencionar objetos receptores y la información a mostrar?
¿Cómo se encapsula una petición en el patrón Comando?
¿Cómo se encapsula una petición en el patrón Comando?
Flashcards
Patrón de diseño Factoría
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
Factoría Abstracta
Interfaz para crear objetos, define un método para cada tipo de producto.
Factoría Concreta
Factoría Concreta
Implementa la interfaz de la fábrica abstracta para crear un tipo específico de producto.
Producto Abstracto
Producto Abstracto
Define la interfaz para una familia de objetos relacionados o dependientes.
Signup and view all the flashcards
Producto Concreto
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)
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
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
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)
Constructor (Patrón Constructor)
Interfaz abstracta para construir partes de un objeto complejo.
Signup and view all the flashcards
ConstructorConcreto (Patrón Constructor)
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)
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)
Producto (Patrón Constructor)
Representa el objeto complejo bajo construcción.
Signup and view all the flashcards
Patrón Factory Method
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)
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)
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
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
Patrón Adaptador
Permite que clases con interfaces incompatibles puedan trabajar juntas.
Signup and view all the flashcards
Interfaz incompatible
Interfaz incompatible
Las interfaces de dos o más clases no son compatibles entre sí.
Signup and view all the flashcards
Clase Adaptadora
Clase Adaptadora
Clase que hereda de la clase a adaptar y ofrece una interfaz diferente.
Signup and view all the flashcards
Objeto Adaptador
Objeto Adaptador
Contiene uno o más objetos de la clase a adaptar.
Signup and view all the flashcards
Target
Target
Define la interfaz específica que necesita la aplicación.
Signup and view all the flashcards
Client
Client
Colabora con la conformación de objetos para la interfaz Target.
Signup and view all the flashcards
Adaptee
Adaptee
Clase con la interfaz existente que necesita ser adaptada.
Signup and view all the flashcards
Adapter
Adapter
Adapta la interfaz de Adaptee a la interfaz Target.
Signup and view all the flashcards
Reutilización de código
Reutilización de código
Utilizar un código existente sin modificarlo.
Signup and view all the flashcards
Desacoplar Abstracción e Implementación
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
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)
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)
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
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
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
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?
¿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?
¿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)
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)
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)
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
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
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
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
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 flashcardsStudy 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.