Open ggallici opened 3 years ago
Hola @ggallici como va? Ante todo muchísimas gracias por el feedback. Se me habían escapado varios detalles que ya estuve corrigiendo. En cuanto a los tests lo tenia en mente, de hecho si ves mis commits en varios puse "Missing tests", pero la verdad no llegue con el tiempo, y como la entrega de ayer solo era diseñar la solución no me preocupe por demás.
Ahora sí agregue varios, y lo deje en un test coverage de 85% aproximadamente.
También modifique el diagrama y lo hice con la herramienta que me sugeriste, pero la verdad que nunca había hecho este tipo de diagramas. Podrías por favor indicarme si ahí esta bien?
Nuevamente gracias!! Buen finde.
Buenas, Te voy marcando un par de cositas para que tengas en cuenta:
venta.getFecha().compareTo(dia) == 0
podrías encapsularla como el mensajeesDeLaFecha(dia)
dentro deVenta
Venta
tiene una colección dePrenda
. Esto no está mal, pero podría estar mejor. Imaginate que una venta tuvo 10 camisas nuevas, estaria bueno no tener que instanciar 10 veces la misma clase ya que el hecho de que sean objetos distintos no nos aporta nada y consume memoria al cuete. Una opción válida sería modelar la idea deItem
, el cual contenga la prenda y su cantidad vendida. De paso le podríamos dar algunas responsabilidades como darnos su precio//cantidad * prenda.precio()
MedioDePago
. Se me ocurre que podrías hacer algo asi:public class Efectivo implements MedioDePago { public double precioConRecargo(Prenda unaPrenda) { unaPrenda.precio(); } }
//Despues podrias mandar esta parte del método calcularTotal(...) a Venta o hacer MedioDePago abstracta y subirlo ahi prendas.stream().map(prenda -> precioConRecargo(prenda)).reduce(0.0, Double::sum);`
Igualmente, tu solución está muy muy bien :partying_face: