我有一个状态标签,它根据当前状态显示带有彩色边框的消息。消息本身可能会有所不同(即可以有多个消息到ERROR
),但CLEAR
状态不同,因为它不应该显示任何消息。
示例用法
setStatus(INFORMATION, "There are new cookies in the jar.");
setStatus(ERROR, "You were to slow.");
setStatus(ERROR, "Stop bugging me, you were to slow.");
clearStatus();
我如何模拟这种特殊状态CLEAR
?我应该从枚举中删除它吗?我已将它包含在枚举中,因为CLEAR
它是一个有效的状态,只是它不显示消息。然而,客户可以致电:
setStatus(CLEAR, "ups, I gave you a message");
还有哪些其他选项可以对除一个之外的所有值都具有相同性质的值列表进行建模?
public class StatusLabel {
public enum Status {
CLEAR,
INFORMATION,
ERROR;
}
Status status = Status.CLEAR;
public void setStatus(final Status status, final String message) {
assert status != STATUS.CLEAR;
// set status and a show message
this.status = status;
}
public void clearStatus() {
// clear message
status = Status.CLEAR;
}
public Status getStatus() {
return status;
}
}