이 열거를 리팩토링합니다. 어떻게 이것을 리팩토링 할 수 있습니까?는 어떻게 규칙의 결과를 저장하기위한 열거가 자바
0
A
답변
0
이다, 더 나은 @JBNizet의 답을 원하신다면 "결과"당신이 열거 형식이어야합니다 반환하고, 컴파일시에 알고있는 모든 이유 왜 실패 발생할 수있는 경우 각 유형에 대해 실패 토큰을 정의 할 수 있습니다. 동적 실패 메시지의 경우 런타임에만 알 수있는 오류 이유에 대해 Jay Schauer/JBNizet의 주석 솔루션에 가서 합격/불합격 토큰 및 메시지 문자열에 대한 멤버가있는 별도의 클래스를 만듭니다.
enum Outcome {
PASS("Congratulations"),
FAIL_BLANK("too many blank stares"),
FAIL_RED("too many Red Herrings"),
FAIL_NET("network issues");
private String msg;
private Outcome(String message) {
msg = message;
}
public String getMsg() { return msg; }
}
1
편집 : 그래서 여기에 구현
public class Outcome {
public enum OutcomeOptions {
PASSED, FAILED;
}
private final OutcomeOptions outcome;
private final String message;
public Outcome(OutcomeOptions outcome, String message) {
this.outcome = outcome;
this.message = message;
}
public OutcomeOptions getOutcome() {
return outcome;
}
public String getMessage() {
return message;
}
}
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html 당신은 결과 두 개의 필드와 일반 클래스 만들 수 – davedwards
: (상수가 통과 실패로 열거,)를 OutcomeType , 그리고 이유 (문자열) –
하나 이상의 실패 이유가있을 수 있기 때문에, 다음 리팩터링에 많은 의미가 없습니다 ... –