Java 中根据用户输入确定要调用的方法
所以我正在用 Java 编写一个简单的 IRC 客户端。截至目前,我正在尝试确定用户正在输入哪些命令。我知道我可以使用一堆 if-else 语句,但这不是很好的做法。我想过使用开关,但我正在尝试寻找替代方案。
例如:我有一些命令,PASS,NICK,USER,JOIN,PART,MODE
和一些来自用户的示例输入:NICK John
我可以检索输入,但我想要一种干净、有效的方式来告诉程序调用 method_nick(John),然后将其发送到服务器。
只要有一个正确的方向,我们将不胜感激。我只是不知道如何在没有 switch/if-elses 的情况下处理这个问题。
So I'm coding a simple IRC client in Java. As of now, I'm trying to determine what commands the user is typing in. I know I can use a bunch of if-else statements, but that's not very good practice. I thought of using a switch, but I'm trying to find an alternative to that.
For example: I have some commands, PASS, NICK, USER, JOIN, PART, MODE
and some example input from the user: NICK John
I can retrieve the input, but I want a clean, efficient way to be able to tell the program to call the method_nick(John), which would then send that to the server.
Just a point in the right direction would be appreciated. I'm just at a loss as to how to handle this without a switch/if-elses.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
省略 if-else 的一个好方法是使用 switch-case ;)
您可以使用带有命令字符串的映射作为操作的键和命令对象。这称为命令模式。
然后:
另一种方法是使用反射。
A good way to ommit if-else is to use switch-case ;)
You could use map with the command strings as a keys and a command object for the action. This is called the Command Pattern.
and then:
Another approach is to use reflection.