T12 - ANALISIS Y DISEÑO O.O - UML -PATRONES Flashcards
Ahora que somos unos expertos en patrones creacionales, si nos preguntan ¿Cuál de estos no es un patrón creacional?
a) Facede
b) Singleton
d) Builder
d) Prototype
Ahora que somos unos expertos en patrones creacionales, si nos preguntan ¿Cúal de estos no es un patrón creacional?
a) Facede
b) Singleton
d) Builder
d) Prototype
PATRONES CREACIONALES:
- SINGLETON
- FACTORY METHOD
- ABSTRACT FACTORY
- BUILDER
- PROTOTYPE
SINGLETON (Instancia única): Asegurar que una clase tenga una única instancia y proporcionar un punto de acceso global a la misma. El cliente llama a la función de acceso cuando se requiere una referencia a la instancia única. Ej: Login
BUILDER: Separar la construcción de un objeto complejo de su representación para que el mismo proceso de construcción puede crear diferentes representaciones.
Nos permite crear un objeto que está compuesto por muchos otros objetos. Sólo el “Builder” conoce a detalle las clases concretas de los objetos que serán creados, nadie más.
PROTOTYPE: Especificar varios tipos de objetos que pueden ser creados en un prototipo para crear nuevos objetos copiando ese prototipo. Reduce la necesidad de crear subclases.
Queremos crear nuevos objetos mediante la clonación o copia de otros.
PATRONES ESTRUCTURALES
- BRIDGE
- COMPOSITE
- DECORATOR
- FACADE
- FLYWEIGHT
- PROXY
- ADAPTER
Ahora que somos unos expertos en patrones creacionales, si nos preguntan ¿Cuál de estos no es un patrón creacional?
a) Prototype
b) Singleton
d) Builder
d) Iterator
Ahora que somos unos expertos en patrones creacionales, si nos preguntan ¿Cuál de estos no es un patrón creacional?
a) Prototype
b) Singleton
d) Builder
d) Iterator
PATRONES CREACIONALES:
- SINGLETON
- FACTORY METHOD
- ABSTRACT FACTORY
- BUILDER
- PROTOTYPE
SINGLETON (Instancia única): Asegurar que una clase tenga una única instancia y proporcionar un punto de acceso global a la misma. El cliente llama a la función de acceso cuando se requiere una referencia a la instancia única. Ej: Login
BUILDER: Separar la construcción de un objeto complejo de su representación para que el mismo proceso de construcción puede crear diferentes representaciones.
Nos permite crear un objeto que está compuesto por muchos otros objetos. Sólo el “Builder” conoce a detalle las clases concretas de los objetos que serán creados, nadie más.
PROTOTYPE: Especificar varios tipos de objetos que pueden ser creados en un prototipo para crear nuevos objetos copiando ese prototipo. Reduce la necesidad de crear subclases.
Queremos crear nuevos objetos mediante la clonación o copia de otros.
PATRONES DE COMPORTAMIENTO
ITERATOR: Quieres atravesar secuencialmente una estructura de datos sin preocuparte de la forma interna que tenga (grafo, árbol, lista, etc.)
Se hace definiendo una interfaz homogénea (p. ej. un método next() que devuelve el siguiente elemento de la estructura) que las estructuras que quieres atravesar tienen que tener implementada. De esta manera, los clientes no tienen que preocuparse de los detalles de cómo recorrerla.
Cuál de los siguientes NO es un patrón de diseño de comportamiento:
a) Interpreter.
b) Mediator.
c) Composite.
d) Iterator.
Cuál de los siguientes NO es un patrón de diseño de comportamiento:
a) Interpreter.
b) Mediator.
c) Composite.
d) Iterator.
PATRONES DE COMPORTAMIENTO:
- CHAIN OF RESPONSIBILY
- COMMAND
- INTERPRETER
- ITERATOR
- MEDIATOR
- MEMENTO
- OBSERVERS
- TATESTATE
- GYTEMPLATE METHO
- SVISITOR
COMPOSITE es un PATRÓN ESTRUCTURAL
Necesitas interaccionar tanto con una clase individual como con grupos de esa determinada clase de una manera flexible y homogénea.
Se construyen las clases en forma de árbol, creando así grupos de clases (nodos con hijos) y clases individuales (hojas). Este patrón te permite aplicar las mismas operaciones sobre los grupos y sobre las clases individuales, sin distinción.
¿Qué patrón de diseño pertenece a la clasificación de Comportamiento?
a) Singleton
b) Observer
c) Proxy
d) Prototype
¿Qué patrón de diseño pertenece a la clasificación de Comportamiento?
a) Singleton
b) Observer
c) Proxy
d) Prototype
PATRONES DE COMPORTAMIENTO:
- CHAIN OF RESPONSIBILY
- COMMAND
- INTERPRETER
- ITERATOR
- MEDIATOR
- MEMENTO
- OBSERVERS
- TATESTATE
- GYTEMPLATE METHO
- SVISITOR
OBSERVER: Conjunto de clases que nos proporciona la infraestructura necesaria para montar un sistema de notificaciones cuando una parte del sistema cambia (eventos).
CREACIONES: Singleton, Prototype
ESTTRUCTURAL: Proxy
Los patrones de diseño se agrupan en diferentes categorías. Indique cuál NO es la opción correcta para ser considerada como una de estas categorías:
a) Estructurales
b) De análisis
c) De comportamiento
d) De creación
Los patrones de diseño se agrupan en diferentes categorías. Indique cuál NO es la opción correcta para ser considerada como una de estas categorías:
a) Estructurales
b) De análisis
c) De comportamiento
d) De creación
CATEGORIAS:
- DE ANÁLISIS. Modelos “tipo” que se remiten en muchas aplicaciones de gestión.
- DE ARQUITECTURA: Grandes líneas organizativas del proyecto (Layered, Cli./Serv, MVC…)
- DE DISEÑO
Indique cómo se denomina el patrón de diseño que representa y externaliza el estado interno de un objeto sin violar la encapsulación, de forma que éste puede volver a dicho estado más tarde:
a) Spider.
b) State.
c) Observer.
d) Memento.
Indique cómo se denomina el patrón de diseño que representa y externaliza el estado interno de un objeto sin violar la encapsulación, de forma que éste puede volver a dicho estado más tarde:
a) Spider.
b) State.
c) Observer.
d) Memento.
STATE: Permite a un objeto alterar su comportamiento dependiendo de su estado interno.
Separar en clases independientes la lógica de negocio a cada estado, por el que transita una determinada clase de negocio.
MEMENTO: Almacenar el estado de un OBJ (o del sistema completo) en un momento dado, de manera que se pueda restaurar en ese punto de manera sencilla.
Se mantiene almacenado el estado del objeto para un instante de tiempo en una clase independiente de aquella a la que pertenece el objeto (pero sin romper la encapsulación), de forma que ese recuerdo permita que el objeto sea modificado y pueda volver a su estado anterior.
OBSERVER: Conjunto de clases que nos proporciona la infraestructura necesaria para montar un sistema de notificaciones cuando una parte del sistema cambia (eventos).
Señalar cuál de los siguientes patrones de diseño GoF (Gang Of Four) permite tratar objetos compuestos como si de uno simple se tratase:
a) Adapter
b) Command
c) Composite
d) Facade
Señalar cuál de los siguientes patrones de diseño GoF (Gang Of Four) permite tratar objetos compuestos como si de uno simple se tratase:
a) Adapter
b) Command
c) Composite
d) Facade
COMPOSITE: Componer objetos en estructuras de árbol que representan jerarquías de un todo y sus partes. El Composite provee a los clientes un mismo trato para todos los objetos que forman la jerarquía.
Infinitos eslabones del tipo que queremos (Polimorfismo en el contenedor)
ADAPTER: Como cualquier adaptador en el mundo real este patrón se utiliza para ser una interfaz, un puente, entre dos objetos. En el mundo real existen adaptadores para fuentes de alimentación, tarjetas de memoria de una cámara, entre otros. En el desarrollo de software, es lo mismo.
Propósito: Convertir la interfaz (adapter) de una clase en otra interfaz (target) que el cliente espera.
Permitir a dos interfaces incompatibles trabajar en conjunto. Este patrón nos permite ver a nuevos y distintos elementos como si fueran igual a la interfaz conocida por nuestra aplicación.
FACADE “FACHADA”: Proporcionar una interfaz unificada para un conjunto de interfaces de un subsist. Facade define una interfaz de alto nivel que hace que el subsistema sea más fácil de usar.
El objeto de minimizar el acoplamiento entre las clases de un subsistema clientes) que necesitan servicios/funciones de clases que se encuentran en otro subsistema.La clase “facade” no solo “centraliza” las peticiones de los clientes, sino que también les ofrece unas funciones/interface de más alto nivel.
COMMAND: Encapsula comandos(llamados a métodos) en objetos, permitiéndonos realizar peticiones sin conocer exactamente la petición que se realiza o el objeto al cuál se le hace la petición. Este patrón nos provee las opciones para hacer listas de comandos, hacer/deshacer acciones y otras manipulaciones.
Encapsular una petición en forma de objeto, permitiendo de ese modo que parametrizar clientes con diferentes peticiones, “colas” o registros de solicitudes, y apoyar las operaciones de deshacer.
En diseño orientado a objetos se utiliza el patrón Observador (en inglés, Observer), que define una dependencia uno a muchos entre un sujeto y varios observadores. Señale la respuesta correcta:
a) Cuando el sujeto se modifica, se notifica dicha modificación. Los observadores se actualizarán sólo si se va a utilizar la información del sujeto.
b) Establece cuántos observadores de un sujeto van a existir para poder notificarles cualquier cambio.
c) La responsabilidad de actualización puede residir en los observadores tras la notificación de cambio del sujeto.
d) El sujeto nunca puede ser borrado.
En diseño orientado a objetos se utiliza el patrón Observador (en inglés, Observer), que define una dependencia uno a muchos entre un sujeto y varios observadores. Señale la respuesta correcta:
a) Cuando el sujeto se modifica, se notifica dicha modificación. Los observadores se actualizarán sólo si se va a utilizar la información del sujeto.
b) Establece cuántos observadores de un sujeto van a existir para poder notificarles cualquier cambio.
c) La responsabilidad de actualización puede residir en los observadores tras la notificación de cambio del sujeto.
d) El sujeto nunca puede ser borrado.
PATRON DE COMPORTAMIENTO.
OBSERVER: Conjunto de clases que nos proporciona la infraestructura necesaria para montar un sistema de notificaciones cuando una parte del sistema cambia (eventos).
El patrón de diseño que desacopla una abstracción de su implementación de manera que las dos puedan evolucionar independientemente se denomina:
a) Adapter (Adaptador).
b) Bridge.
c) Facade (Fachada).
d) Proxy.
El patrón de diseño que desacopla una abstracción de su implementación de manera que las dos puedan evolucionar independientemente se denomina:
a) Adapter (Adaptador).
b) Bridge.
c) Facade (Fachada).
d) Proxy.
PATRÓN ESTRUCTURAL:
BRIDGE: Permite desacoplar una abstracción de su implementación, de manera que ambas puedan ser modificadas independientemente sin necesidad de alterar por ello la otra.
En el entorno de la Arquitectura del Software, un patrón:
a) Es una solución a un problema en un contexto particular.
b) Es recurrente y enseña permitiendo entender cómo adaptarlo a la variante particular del problema donde se quiere aplicar.
c) Tiene un nombre para referirse al patrón.
d) Todas las respuestas son correctas.
En el entorno de la Arquitectura del Software, un patrón:
a) Es una solución a un problema en un contexto particular.
b) Es recurrente y enseña permitiendo entender cómo adaptarlo a la variante particular del problema donde se quiere aplicar.
c) Tiene un nombre para referirse al patrón.
d) Todas las respuestas son correctas.
El patrón de diseño Fachada (Facade) es del tipo:
a) Estructural.
b) De comportamiento.
c) De prototipado.
d) Creacional.
El patrón de diseño Fachada (Facade) es del tipo:
a) Estructural.
b) De comportamiento.
c) De prototipado.
d) Creacional.
PATRONES ESTRUCTURALES
- BRIDGE
- COMPOSITE
- DECORATOR
- FACADE
- FLYWEIGHT
- PROXY
- ADAPTER
FACADE:Proporcionar una interfaz unificada para un conjunto de interfaces de un subsistema. Facade define una interfaz de alto nivel que hace que el subsistema sea más fácil de usar.
El objeto de minimizar el acoplamiento entre las clases de un subsistema clientes) que necesitan servicios/funciones de clases que se encuentran en otro subsistema. La clase “facade” no solo “centraliza” las peticiones de los clientes, sino que también les ofrece unas funciones/interface de más alto nivel. Para la creación de un objeto de la clase Facade generalmente vamos a utilizar primero un singleton y posteriormente un Factory Method porque vamos a trabajar con la idea de que la fachada tenga versiones diferentes en su implementación para los distintos clientes que vayan usando este sistema.
Relacionado con el Análisis y Diseño Orientado a Objetos, ¿Cuál de los siguientes patrones de diseño corresponde a la subclasificación patrones de creación?
a) Adapter
b) Bridge
c) Singleton
d) Composite
Relacionado con el Análisis y Diseño Orientado a Objetos, ¿Cuál de los siguientes patrones de diseño corresponde a la subclasificación patrones de creación?
a) Adapter
b) Bridge
c) Singleton
d) Composite
PATRONES CREACIONALES:
- SINGLETON
- FACTORY METHOD
- ABSTRACT FACTORY
- BUILDER
- PROTOTYPE
SINGLETON (Instancia única): Asegurar que una clase tenga una única instancia y proporcionar un punto de acceso global a la misma. El cliente llama a la función de acceso cuando se requiere una referencia a la instancia única. Ej: Login
Indique cómo se denomina el patrón de diseño que define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambia de estado se notifica y actualizan automáticamente todos los objetos que dependen de él:
a) Strategy.
b) State.
c) Observer.
d) Command.
Indique cómo se denomina el patrón de diseño que define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambia de estado se notifica y actualizan automáticamente todos los objetos que dependen de él:
a) Strategy.
b) State.
c) Observer.
d) Command.
PATRONES DE COMPORTAMIENTO:
STATEGY: Implementaciones diferentes de un mismo método.
Definir una familia de algoritmos, encapsular cada uno, y que sean intercambiables. Strategy permite al algoritmo variar independientemente de los clientes que lo utilizan.
STATE: Permite a un objeto alterar su comportamiento dependiendo de su estado interno.
Separar en clases independientes la lógica de negocio a cada estado, por el que transita una determinada clase de negocio.
OBSERVER: Conjunto de clases que nos proporciona la infraestructura necesaria para montar un sistema de notificaciones cuando una parte del sistema cambia (eventos).
COMMAND: Encapsula comandos(llamados a métodos) en objetos, permitiéndonos realizar peticiones sin conocer exactamente la petición que se realiza o el objeto al cuál se le hace la petición. Este patrón nos provee las opciones para hacer listas de comandos, hacer/deshacer acciones y otras manipulaciones.
Encapsular una petición en forma de objeto, permitiendo de ese modo que parametrizar clientes con diferentes peticiones, “colas” o registros de solicitudes, y apoyar las operaciones de deshacer.
¿Cuál de la lista siguiente responde a patrones creacionales de GoF (Gang of Four)?
a) Facade, Composite, Bridge
b) Strategy, Proxy, Iterator
c) Builder, Abstract Factory, Prototype
d) MVC, Session, Router
¿Cuál de la lista siguiente responde a patrones creacionales de GoF (Gang of Four)?
a) Facade, Composite, Bridge
b) Strategy, Proxy, Iterator
c) Builder, Abstract Factory, Prototype
d) MVC, Session, Router
PATRONES CREACIONALES:
- SINGLETON
- FACTORY METHOD
- ABSTRACT FACTORY
- BUILDER
- PROTOTYPE
ABSTRACT FACTORY: Proveer una interfaz para la creación de familias u objetos dependientes relacionados, sin especificar sus clases concretas.
Es una jerarquía que encapsula muchas familias posibles y la creación de un conjunto de productos. El objeto “fábrica” tiene la responsabilidad de proporcionar servicios de creación para toda una familia de productos. Los “clientes” nunca crean directamente los objetos de la familia, piden la fábrica que los cree por ellos.
BUILDER: Separar la construcción de un objeto complejo de su representación para que el mismo proceso de construcción puede crear diferentes representaciones.
Nos permite crear un objeto que está compuesto por muchos otros objetos. Sólo el “Builder” conoce a detalle las clases concretas de los objetos que serán creados, nadie más.
En este patrón intervienen un “Director” y un “Builder”. El “Director” invoca los servicios del “Builder” el cual va creando las partes de un objeto complejo y al mismo tiempo guardo un estado intermedio de la construcción del objeto. Cuando el producto se ha construido por completo el cliente recupera el resultado.
A diferencia de otros patrones creacionales que construyen productos de una sola vez, el patrón “Builder” construye paso a paso los productos bajo el control del “Director”
PROTOTYPE: Especificar varios tipos de objetos que pueden ser creados en un prototipo para crear nuevos objetos copiando ese prototipo. Reduce la necesidad de crear subclases.
Queremos crear nuevos objetos mediante la clonación o copia de otros.
En el ámbito de los patrones de diseño, ¿qué es un singleton?
a) Un objeto del que obtenemos referencias a otros.
b) Un objeto del que sólo existe una instancia.
c) Un objeto que adapta las llamadas a otro y actúa como intermediario.
d) Una clase que no se puede instanciar.
En el ámbito de los patrones de diseño, ¿qué es un singleton?
a) Un objeto del que obtenemos referencias a otros.
b) Un objeto del que sólo existe una instancia.
c) Un objeto que adapta las llamadas a otro y actúa como intermediario.
d) Una clase que no se puede instanciar.
SINGLETON (Instancia única): Asegurar que una clase tenga una única instancia y proporcionar un punto de acceso global a la misma. El cliente llama a la función de acceso cuando se requiere una referencia a la instancia única. Ej: Login.
Public class configuration {
Private static configuratio instancia;
Private configuration () { … }
Public static configuration getInstancia() {
If (instancia == null)
Instancia = new configuration();
Return instancia;
} …
}
Lo que se hace es crear un método publico pero estático que se llama getInstancia() para que todo el mundo lo pueda llamar: getInstancia() Creamos una variable interna “instancia” de la clase de tipo private y static.
Desde dentro de la clase podremos hacer el new, pero nunca desde fuera
Object Pool: Generalización del patrón singleton pero limita a un nº finito de instancias (no es del catalogo GOF)
El patrón de diseño cuyo propósito es convertir la interfaz de una clase en otra que esperan los clientes es:
a) Proxy
b) Composite
c) Adapter
d) Facade
El patrón de diseño cuyo propósito es convertir la interfaz de una clase en otra que esperan los clientes es:
a) Proxy
b) Composite
c) Adapter
d) Facade
Los cuatro patrones son ESTRUCTURALES.
Proxy: Tienes una clase y necesitas controlar qué clientes pueden acceder a ella.Entre los clientes y la clase a la que quieren acceder se pone una clase proxy con la misma interfaz que aquella. Esta clase proxy controla qué clientes pueden utilizar la clase y quiénes no.
Composite Necesitas interaccionar tanto con una clase individual como con grupos de esa determinada clase de una manera flexible y homogénea.
Se construyen las clases en forma de árbol, creando así grupos de clases (nodos con hijos) y clases individuales (hojas). Este patrón te permite aplicar las mismas operaciones sobre los grupos y sobre las clases individuales, sin distinción.
Adapter: Tienes un cliente que quiere utilizar una clase y espera que tenga una determinada interfaz, pero se encuentra otra diferente, por lo que no puede utilizarla directamente. Las interfaces son incompatibles.
Adapter se pone en medio del cliente y de la clase con la interfaz que espera el cliente y hace la traducción a lo que espera la clase.
Facede: Tienes una serie clases relacionadas de bajo nivel cuyas interfaces son complejas y pesadas de usar.
Se crea una clase de más alto nivel (un punto único de acceso) que simplifica la utilización de todas esas clases.
- *Según la claslflcaci6n de la GoF (Gang of Four), lqué patrón de diseño se categorlza como estructural?**
a) Mediator
b) Memento
c) Prototype
d) Bridge
Según la claslflcaci6n de la GoF (Gang of Four), lqué patrón de diseño se categorlza como estructural?
a) Mediator
b) Memento
c) Prototype
d) Bridge
PATRONES DE COMPORTAMOENTO: Mediator y Memento
Mediator: Tienes un grupo de clases que necesitan intercambiar continuamente información entre ellas, por lo que todas dependen de las demás y el acoplamiento es muy alto.
Se hace poniendo una clase que hace de mediadora entre todas las demás. El patrón restringe las comunicaciones directas entre los objetos, forzándolos a colaborar únicamente a través del objeto mediador.
Memento: Necesitas guardar el estado actual de un objeto por si necesitas restaurarlo después de una modificación. Es nuestro Ctrl + Z. Se hace creando una copia del estado del objeto y serializándolo si quieres guardarlo en disco.
PATRÓN CREACIONAL. Prototype: Quieres crear instancias de una clase, pero crear esas instancias es pesado o caro. La solución es implementar un método .clone() con el que se crean copias de instancias ya existentes.
PATRÓN ESTRUCTURAL- Bridge: Necesitas poder modificar tanto las abstracciones como las implementaciones porque sabes que ambas cambiarán con el tiempo.
Se hace situando las abstracciones y las implementaciones en jerarquías de clases separadas.
El diagrama recoge la estructura de clases de un patrón de diseño que se ha considerado adecuado implementar en el nuevo sistema, este patrón permite proporcionar un representante que se encargue de controlar el acceso a un objeto, y se denomina:
a) Patrón Memento.
b) Patrón Bridge.
c) Patrón Adapter.
d) Patrón Proxy.
El diagrama recoge la estructura de clases de un patrón de diseño que se ha considerado adecuado implementar en el nuevo sistema, este patrón permite proporcionar un representante que se encargue de controlar el acceso a un objeto, y se denomina:
a) Patrón Memento.
b) Patrón Bridge.
c) Patrón Adapter.
d)Patrón Proxy.
ESTRUCTURALES: Bridge, Proxy, Adapter
Bridge: Necesitas poder modificar tanto las abstracciones como las implementaciones porque sabes que ambas cambiarán con el tiempo.
Se hace situando las abstracciones y las implementaciones en jerarquías de clases separadas.
Proxy: Tienes una clase y necesitas controlar qué clientes pueden acceder a ella.
Entre los clientes y la clase a la que quieren acceder se pone una clase proxy con la misma interfaz que aquella. Esta clase proxy controla qué clientes pueden utilizar la clase y quiénes no.
Adapter: Tienes un cliente que quiere utilizar una clase y espera que tenga una determinada interfaz, pero se encuentra otra diferente, por lo que no puede utilizarla directamente. Las interfaces son incompatibles.
Adapter se pone en medio del cliente y de la clase con la interfaz que espera el cliente y hace la traducción a lo que espera la clase.
COMPORTAMIENTO: Memento.
Memento: Necesitas guardar el estado actual de un objeto por si necesitas restaurarlo después de una modificación. Es nuestro Ctrl + Z.
Se hace creando una copia del estado del objeto y serializándolo si quieres guardarlo en disco.