Недостатки использования 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 придет со специальным форматированием, тогда я создам List с помощью TextFormatter.tag и запускаю команды в другом порядке. Благодаря ENUM мой словарь доступных команд находится в одном месте.
- Каковы недостатки этого дизайна?
- Если он будет работать очень быстро? [потому что я использую enum вместо List]
1 ответ
Каковы недостатки этого дизайна?
Вы не показали нам достаточно дизайна, чтобы принять такое решение.
Одна вещь, которую вы, человек, не учли, это то, как вы собираетесь отображать строки в эти TextFormatter
объекты.
Если он будет работать очень быстро? [потому что я использую enum вместо List]
Скорее всего, разница в производительности будет слишком мала, чтобы ее можно было измерить.
Итог: если вы думаете, что этот подход облегчает понимание вашего кода, используйте его.