0
我有一個命令列表,我按照定義的順序運行。使用Java ENUM作爲命令列表的缺陷
public enum TextFormatter {
Bold("bold",new BoldCommand()),
Superfancy("superfancy",new SuperfancyCommand());
String tag;
Command cmd;
FormatterCommand(String tag, Command cmd) {
this.tag = tag;
this.cmd = cmd;
}
public void format(InputStream in, OutputStream out) {
cmd.format(in,out);
}
public String toString() {
return tag;
}
}
在大多數情況下,我會這樣運行了他們:
for(TextFormatter formatter : TextFormatter.values()) {
formatter.format(in,out);
}
但有時JSON會帶有特殊格式的,那麼我會用TextFormatter.tag使名單,並運行在不同的順序指令。感謝ENUM,我的可用命令字典集中在一個地方。
- 這種設計的缺點是什麼?
- 如果它運行速度超快? [因爲我用枚舉而不是列表]
這甚至沒有編譯 - 你的構造函數被命名爲'FormatterCommand',但你的類被命名爲'TextFormatter' – Bohemian 2013-03-23 11:43:23
如果你喜歡它,使用它。 – flup 2013-03-23 12:02:27
枚舉總是大寫! – 2013-03-23 12:23:26