b3t5 - Patrones de diseño Flashcards

1
Q

Principios GRASP (que me suenen)

A

General Responsability Assignmeten Software Patterns
Patrones de diseñ orientado a objetos

Information expert -> asignación de responsabilidads
Creator
Controller
Indirection
Low coupling
High cohesion
Polymorphism
Protected variations
Pure fabrication

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Principios SOLID
Cuáles son y de qué tratan?

A

S -> Single responsability principle: cada clase tiene una sola responsabilidad. “Una clase sólo tendría que tener una razón para cambiar”
O -> Open / Closed principle: “Una clase debería estar abierta para extenderla, pero no para modificarla”
L -> Liskov sustitution principle: “Las clases derivadas deben poder ser sustituibles por sus clases base”
I -> Interface Segregation principle: Es preferible muchas interfaces específicas que una de caracter general
D -> Dependency Inversion principle: “Depender de las abstracciones y no de las implementaciones”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Nombra algunos patrones de análisis

A

1.Layered pattern
2.Client-server pattern
3.Master-slave pattern
4.Pipe-filter pattern
5.Broker pattern
6.Peer-to-peer pattern
7.Event-bus pattern
8.Model-view-controller pattern
9.Blackboard pattern
10.Interpreter pattern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Indica los patrones de diseño CREACIONALES

A

Abstract Factory
Builder
Factory method
Prototype
Singleton

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Indica qué patrones de diseño son ESTRUCTURALES

A

Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Adapter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Estos son los patrones de diseño de COMPORTAMIENTO.
No hay que aprenderse que son de esta clasificación, sólo aprenderse los creacionales y estructurales, y los que no sean de esos tipos son de comprtamiento

A

Chain of responsability
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template method
Vistor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Patrón SINGLETON

A

Creacional
1 objeto en memoria compartido por todos en la aplicación
Se consigue haciendo que el constructor sea privado y desarrollar un getInstancia que devuelva la instancia estática (creándola si todavía no existe la primera vez, o devolviendo la misma ya creada anteriormente)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Patrón FACTORY METHOD

A

Creacional
Se crea una clase que se encarga de construir los objetos concretos, devolviéndolo como la superclase, para que el que llama no sabe qué clase hija es.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Patrón FACTORY METHOD

A

Creacional
Se crea una clase que se encarga de construir los objetos concretos, devolviéndolo como la superclase, para que el que llama no sabe qué clase hija es.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Patrón BUILDER

A

Creacional
Hay varias clases que construyen cada parte de un objeto complejo y una clase Director que es la que se encarga de llamar a estas clases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Patrón PROXY

A

Estructural
Para cumplir la S de Solid y no “molestar” a la clase cliente, se crea un proxy que para el cliente es la clase real de negocio, pero en realidad ese proxy hace otras cosas extra (seguridad, … lo que sea) antes de llamar a la case real de negocio.
Para que el cliente no se entere del truco, el proxy tiene que implementar la misma interfaz padre que la clase real de negocio (polimorfismo), y el cliente lo que usa es la interfaz padre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Patrón COMPOSITE

A

Estructural

Jerarquia de herencia de Elemento, que heredan Compuesto y Simple. Además Compuesto tiene n Elementos.
De esta forma con esas tres clases se puede hacer muy flexible un diseño de un caso de uso de contenedores y contenidos, tipo sección, divisón, estante, balda, producto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Patrón CHAIN OF RESPONSABILITY

A

Comportamiento

Es como los filters de JEE antes de los servlets
Cadena de eslabones donde cada eslabon se encarga de hacer algo extra antes de la funcionalidad principal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Patrón COMMAND

A

Comportamiento

Lo que serían métodos se convierten en clases.
Se crea una interfaz Command con el método execute(), que implementan distintos clases de comandos concretos como, Print, Save, Search,… que implementan el execute a su manera.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Patrón STRATEGY

A

Define un interface para un cierto algoritmo de forma que podamos tener por debajo todas sus posibles versiones/implementaciones

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Patrón ITERATOR

A

Comportamiento
Interfaz Iterator para iterar colecciones sin tener que saber cómo se recorre esa colección concreta.

17
Q

Patrón MEMENTO

A

Comportamiento
Para poder hacer un undo, como el ctrl+z

18
Q

Patrón OBSERVER

A

Comportamiento
Sistema de notificaciones cuando una parte del sistema cambia (eventos), que notifica a clases suscritas

19
Q

Patrón STATE

A

Comportamiento
Parecido al COMMAND. Los estados de una clase se convierten en clases, y todos heredan de la clase padre Estado
Así se evitan muchos if

20
Q

Patrón TEMPLATE METHOD

A

Comportamiento

Consiste en definir una clase abstracta con el “esqueleto” de un proceso/algortimo. Algunas de las funciones definidas en esa superclase están preparadas para ser sobreescritas en las hijas y asi terminar de definir dicho proceso

21
Q

Patrón FACADE

A

Estructural
Proporciona para un subsistema (paquete con clases relacionadas) un punto unico de acceso que ofrece servicios de más alto nivel que los que ofrece cada una de las clases de ese subsistema individualmente

Se combina con un patrón creacional SINGLETON + FACTORY

22
Q

Patrón ADAPTER

A

Estructural

Una clase A que quiere usar los métodos de otra B pero no sabe o no le viene bien tal cual están definidos. El adapter será una clase intermedia que le ofrece ese método que le viene bien a A y realizará internamente las llamadas correspondientes a B

23
Q

Patrón FLYWEIGHT

A

si creo p.ej. 30.000 instancias de un objeto, y de repente nos damos cuenta de que hay una determinada info que es la misma (común) en todas las instancias, la solución es sacarlo fuera, a una clase externa. Esa info común la vamos a poner toda en una clase única y una única instancia

24
Q

Patrón ABSTRACT FACTORY

A

Creacional

el problema a solucionar por este patrón es el de crear diferentes familias de objetos relacionados o que dependen entre sí, sin especificar sus clases concretas

25
Q

Patrón DECORATOR

A

Estructural
Sirve para modificar la funcionalidad de un objeto metiéndolo dentro de otro objeto que sí tiene esa funcionalidad

26
Q

Patrón PROTOTYPE

A

Delega la clonación en el objeto, implementando una Intefaz que tenga el metodo clonar.