1

所以我正在用 Java 编写一个简单的 IRC 客户端。到目前为止,我正在尝试确定用户正在输入什么命令。我知道我可以使用一堆 if-else 语句,但这不是很好的做法。我想过使用开关,但我正在尝试寻找替代方案。

例如:我有一些命令,PASS、NICK、USER、JOIN、PART、MODE

以及来自用户的一些示例输入:NICK John

我可以检索输入,但我想要一种干净、有效的方法来告诉程序调用 method_nick(John),然后将其发送到服务器。

只是在正确方向上的一点将不胜感激。我不知道如何在没有 switch/if-else 的情况下处理这个问题。

4

1 回答 1

2

省略 if-else 的一个好方法是使用 switch-case ;)

您可以使用带有命令字符串的 map 作为操作的键和命令对象。这称为命令模式

Map<String,Action> m=new Map<String,Action>();
m.put("NICK", new Action() { public void execute() {... } });
m.put("PASS", new Action() { public void execute() {... } });

接着:

 m.get(command_from_irc).execute();

另一种方法是使用反射。

于 2011-02-02T05:52:17.687 回答