我有一个枚举来保持规则的结果:
enum Outcome{
PASSED,
FAILED;
}
现在我需要添加原因,为什么规则失败了我返回的结果。我怎么能重构这个?
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
如果"结果"您返回的必须是枚举类型,并且您在编译时知道可能发生故障的所有原因,然后您可以为每种类型定义故障标记。对于动态故障消息,只能在运行时知道的故障原因,我会使用Jay Schauer / JBNizet的注释解决方案,并为成员创建一个单独的类,用于通过/失败令牌和消息字符串。 / p>
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; }
}