Patrones de diseño behavioral Flashcards

1
Q

Describe los patrones behaviorals

A

Son los patrones que nos indican como van a interactura los objetos entre si

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

Menciona los tipos de patrones behaviorals

A
  • Chain of Responsability
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visistor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe el patron chain of responsability

A

Cuando queremos no saber quien es el que manda el mensaje ni quien lo recibe y que es, to sea transparente para el cliete, pareciera un linked list ya que vamos a mandar la peticion y el nodo actual solo tiene que saber quien es el siguiente en la cadena de mando, promueve decoplamiento, un ejemplo seria por ejemplo una estructura en una empresa donde se tiene a un Director, un VP y un CiEO, podemos mandar peticion al director pero si este no puede tomar la decision manda la peticion al siguiente sucesor que es el VP y si este no puede lo manda al CEO, como se puede ver cada entidad solo tiene nocion del objeto siguiente que es sucesor

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

Describe el command pattern

A

Decopla el cliente y encapsula el objeto por lo cual no saben ni uno ni el otro de que pasa, por ejemplo tenemos la interfaz runnable que implementa un run y la clase thread a la cual le pasamos encapsulado el comportamiento de run, solo encapsulamos un metodo, es decir el objeto solo tendra un metodo, tambien el estado va a estar contenido en el commando, por ejemplo tenemos una luz que prende y apaga, podemos mandar llamar presionar boton y cada que lo presionesmos se va a prender y a apagar, pero esto sera dentro del command y no en el cliente como generalmente se hace y esta mal, si se hace bien el command podemos hacer varias cosas que sean el mismo command en un foreach y pasarle el commando original, solo tendriamos que tener cuidado con el etado ya que si solo lo pasamos asi funcionaria como un solo estado, si esta apagado lo prende y si esta prendido lo apaha y si lo que queremos es que apague todas las luces de la casa tendriamos un estado inconsistente

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

Describe el Interpreter pattern

A

Representa una regla de manera gramatica entre objetos,Representa gramatica, es cuando queremos hacer un diccionario de gramatica, por ejemplo hacer expresiones que sean por ejemplo or o and o igual y podemos juntar los objetos y hacer este tipo de operaciones, es una clase por regla, se parece al command pero el command es un metodo por clase aqui es toda una regla por ejemplo and o or

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

Describe el patron iterator

A

Navegacion a traves del objeto sin exponer su estructura, por ejemplo como iteramos una lista es diferente a como iteramos un tree, es lo que nos da este patron, que nos decopla la implementacion de la abstraccion, por ejemplo si usamos for normal de tipo for(int i=0;i<list.size>
</list.size>

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

Describe Mediator pattern

A

Los objetos interactuan unos con otros sin referirse explicitamente,por ejemplo en el caso de las luces que se apagaran, en lugar de acceder directamente a la luz, podemos poner en medio un mediator que actuara como ruteador para que se apaguen o se prendan las luces, podemos mediar multiples comandos que son clases con un solo metodo y juntarlas en el mediator

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

Describe el patron memento

A

Externaliza el estado de un objeto para poder agregar funcionalidad de rollback, reestaura un objeto a su estado previo, por ejemplo Serializable podemos serializarlo y deserializarlo, el tke care son las propiedades de las que nos vamos a ocupar para tener rollback, nos sirve para guardar historial de cambios, por ejemplo cuando teniamos el checker o el modifica telefono y solo queriamos que se modificara 3 veces maximo, este patron hubiera servido, al igual que con el checker donde teniamos el estado anterior y el actual, la diferencia con command es que este e enfoca en historia y estado y el command es por request

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

Describe el patron observer

A

Cuando tenemos un subject que tiene que ser consumido por varios observers, es event driven

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

Describe el patron state

A

Cuando queremos representar estado en una aplicacion, aplica el open close principle, las clases estan cerradas para cambios pero el estado esta abierto para extension, por ejemplo tenemos un ventilador, el ventilador de inicio puede estar prendido o apagado, despues puede agregarse medio, bajo y fuerte y asi varios estados, esto lo podemos lograr con if else pero esto hace que sea dificil de leer, la otra manera es hacerlo con un patron state, es una maquina de estado y cada estado solo esta consiente de su siguiente estado y no de todos los demas estados, sirve para refactorizar if elses, la diferecncia con strategy es que este se enfoca en estado y strategy en algoritmos

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

Describe el patron estrategy

A

Se va a escoger en tiempo de ejecucion el algoritmo, por ejemplo el comparator su tipo de comparacion sera distinto por ejemplo por nombre o por edad, etc, eliminar if else, una diferencia con el state es que el state conoce el estado que sigue y en el strategy no se conoce el algoritmo que sigue

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

Describe el patron template

A

Define un algoritmo que va a ser sobre escrito por clases hijas, parcialmente, hacemos todos los metodos que seran parte de nuestro proceso como abstractas y pondremos un metodo final para que no se sobreescriba y en este definimos los pasos de nuestro proceso, es importante que el metodo sea final para que no se sobreescriba por ejemplo doCheckout, doReceipt(), doPay(), doDelivery() si dejamos que lo camibien seria por ejemplo doDelivery(), doReceipt etc podemos cambiar en un orden que no es semanticamente correcto

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

Describe el patron visitor

A

Separar un algoritmo de la estructura del objeto, añadir comportamiento a jerarquias enteras de clases, la jerarquia tambien puede referirse a por ejemplo tenemos un modelo de pagina que tiene parrafos y renglones etc y queremos agregarle a todos estos una funcionalidad de print

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