salluzziluca / TP1-Algo3

1er TP de la materia Algoritmos y Programacion III de la Facultad de de Ingeniería de la Universidad de Buenos Aires
0 stars 0 forks source link

Duda con el patron Builder #5

Closed salluzziluca closed 2 years ago

salluzziluca commented 2 years ago

Estabamos empezando a planear el desarollo de este patron para la creacion de cartas y nos surgió una duda:

Nosotros temenos a priori dos tipos de cartas difernetes: Cartas de accion (que se activan cuando las tiras) y cartas de reaccion (se activan cuando algo en particular sucede). Estamos un poco confundidos a la hora de implementar el builder ya que no sabemos si este puede agregar metodos a la clase, si con algun metodo particular del builder podemos convertir o decorar la clase Carta en subclase CartadeReacción, etc. No sabemos muy bien como implementar el builder o si este es patron correcto para lo que queremos realizar. Otra cosa que habiamos pensado era en tener un metodo en la interfaz Carta que fuera alJugarse() que se activara siempre que la carta se juega en de la mano al tablero, quizas ese metodo pudiera ser sobreescripto por alguna sublclase particular de Carta.

dessaya commented 2 years ago

Puede ser que el patrón Builder no sea el correcto para lo que planteaban. Tal vez Strategy sea el más apropiado: una clase abstracta o interfaz común, y cada tipo de carta que tiene su implementación particular. Pueden cambiar a ese patrón si les simplifica el diseño (actualicen el README en ese caso).

salluzziluca commented 2 years ago

Buenas Diego, todo bien?

Venimos pensando estos dias con Agustín sobre como crear las diferentes combinaciones de cartas y andamos un poco mareados. No por que no tengamos idea de como hacerlo sino por que no sabemos si lo que tenemos en mente está bien o no (si sigue buenas practicas). Estabamos pensando en hacer algo parecido a esto: https://github.com/dcorsi/algo3/tree/main/patos3-strategy/src/main/java/patos pero sentiamos que tener tantos atributos por ahi es medio sin motivo (en la clase abstracta pato). En el ejemplo que da Corsi sirve por que es importante saber cuando un pato no vuela o no parpa, pero en nuestro caso tener la informacion de que una carta no cura no sabemos si sera tan util. De todos modos nos serviria mucho charlarlo en vivo asi que esperaremos al lunes, un saludo

dessaya commented 2 years ago

Si entiendo bien el ejemplo de los patos es de Strategy + Factory Method. De esos el Strategy creo que iría bien para las cartas (depende de las reglas de juego). El Factory en principio no lo necesitarían... a menos que implementen algo como almacenar mazos de cartas en un archivo.