gpt4 book ai didi

java - 我应该在主类或其他地方解析输入参数吗?

转载 作者:行者123 更新时间:2023-12-01 11:30:44 25 4
gpt4 key购买 nike

我有一个包含 main 方法的类,我一直想知道是否应该解析输入参数并检查它们在 main 中或在我向其传递这些参数的对象中是否正确。是什么让类更具可重用性?

最佳答案

理想情况下,您会希望编写干净、模块化的代码。想象一下,如果有一天您决定需要从命令行以外的其他地方获取参数。

解决此问题的一个好方法是使用接口(interface) ArgumentParser,代码的其余部分可以使用该接口(interface)(例如,通过将实现该接口(interface)的实例传递给代码需要的任何部分)读取参数)。对于 --foo 之类的参数,包括 hasSwitch 之类的方法;对于 --foo=bar 之类的参数,包括 getValue 等方法。

如果您需要从不同位置获取参数(例如交互式用户提示、配置文件等),只需更改几行代码即可实例化不同类型的参数解析器。

应在两点检查参数:

  • 配置文件/命令行/等的语法有效性应由解析器本身完成。如果它无法解析参数,那么程序的其余部分就没有必要尝试使用这些参数。解析通常特定于表示类型,因为命令行中的参数的格式与配置文件中的设置不同。
  • 参数的语义有效性应该在程序中实际作用于这些参数的部分中完成。假设一个模块采用 0-10 之间的数字。您只需在该模块内添加一次此检查,而不是在每个解析器中添加此检查。此外,如果有一天您更新模块并且它现在可以处理最多 20 个数字,那么您只有一点已经在逻辑上与模块本身相关,您需要更改有效性检查。

关于java - 我应该在主类或其他地方解析输入参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com