Como lo señaló Spoike, usar polimorfismo para elegir el método correcto de manejo de errores es una opción. Este enfoque básicamente difiere los 10+ si bloquea la búsqueda de métodos virtuales de la JVM, al definir una jerarquía de clases.
Pero antes de ir a una jerarquía de clases en toda regla, también considere usar los métodos enum
. Esta opción funciona bien si lo que planea hacer en cada caso es bastante similar.
Por ejemplo, si desea devolver un mensaje de error diferente para cada ErrorCode
, puede simplemente hacer esto:
// Note singular name for enum
public enum ErrorCode {
INVALID_LOGIN(100, "Your login is invalid"),
INVALID_PASSWORD(101, "Your password is invalid"),
SESSION_EXPIRED(102, "Your session has expired");
private final int code;
private final String
private ErrorCode(int code, String message){
this.code = code;
this.message = message;
}
public String getMessage() {
return message;
}
}
A continuación, el código de control de errores se convierte simplemente:
ErrorCode errorCode = getErrorCode();
prompt(errorCode.getMessage());
Una desventaja de este enfoque es que si desea agregar casos adicionales, deberá modificar la enumeración en sí, mientras que con una jerarquía de clases puede agregar casos nuevos sin modificar el código existente.
¿Está ayudando con la declaración del caso o me falta algo? – Jean
Sí, ya que de esta manera tendría que cambiar su implementación cada vez que cambie la enumeración (por ejemplo, nuevas declaraciones de casos). Cuando implemente su código basado en un buen diseño de OO, intente abrir extensiones pero cierre para modificaciones. – Mephisztoe