Buenas! Queria preguntar por esta resolucion. Esto imprime lo que debe pero comparando con la solucion veo que puede ser que se repita mucho codigo... Queria saber de esta manera que tan mal está, es decir que tan penalizable es. Muchas gracias!
Hola @Jalbertonisalini
Sí, vamos a penalizar que estés repitiendo código del método visit.
En las tres haces:
Invocación a canVisit
System.out
Invocación a IncrementVisitCount
throw new CannotVisit...
Deberías invocar a super.visit para reutilizar comportamiento o directamente no sobreescribirlo.
Es muy importante lo de canVisit para poder agregar condiciones extras en las clases hijas en lugar de hacer dos if anidados como tenés ahora.
En el caso de LimitedVisitsPass podés seguir haciendo lo de spendVisit haciendo primero super.visit y luego invocando a spendVisit. Si super.visit lanzó excepción entonces spendVisit nunca se va a invocar.
Buenas! Queria preguntar por esta resolucion. Esto imprime lo que debe pero comparando con la solucion veo que puede ser que se repita mucho codigo... Queria saber de esta manera que tan mal está, es decir que tan penalizable es. Muchas gracias!
`package AR.EDU.ITBA.POO._PARCIALES1P._20221C.EJERCICIO3;
import java.util.Objects;
public class Attraction {
} `
`package AR.EDU.ITBA.POO._PARCIALES1P._20221C.EJERCICIO3;
import java.time.LocalDate;
public abstract class Pass implements CityPass{
} `
`package AR.EDU.ITBA.POO._PARCIALES1P._20221C.EJERCICIO3;
import java.time.LocalDate;
public class UnlimitedPass extends Pass{
} `
`package AR.EDU.ITBA.POO._PARCIALES1P._20221C.EJERCICIO3;
import java.time.LocalDate;
public class LimitedVisitsPass extends Pass{
} `
`package AR.EDU.ITBA.POO._PARCIALES1P._20221C.EJERCICIO3;
import java.time.LocalDate;
public class endDatePass extends Pass{
} `