arv*_*ixx 8 java design-patterns java.util.scanner
我正在为一个Z80模拟器编写一个调试器,我们正在学校项目中使用Java编写.调试器从用户读取命令,执行它,读取另一个命令等.
命令可以是参数较少,具有可选参数,也可以是无限量的参数.参数主要是整数,但偶尔它们是字符串.
目前,我们正在使用Scanner类来读取和解析输入.阅读方法看起来有点像这样(我写的是我的头脑,没有注意语法和正确性).
这是在项目开始时编写的一个kludge,随着我们向调试器添加越来越多的命令,这很快就失控了.
我对这段代码的主要问题是大量的重复,if/else-nestedness的高级别以及丑陋的一切.
我想建议如何使这个代码更美观和模块化,以及什么样的模式适合这种程序.
我还想了解更多有关代码风格的一般建议.
您是否考虑过使用地图进行调度?哈希图很容易放在那里。只需将键设为命令,并创建一个作为命令的接口或抽象类,如下所示:
interface Commmand {
void execute(String args);
}
Run Code Online (Sandbox Code Playgroud)
或者更好的是,你可以提前分解论点:
interface Commmand {
void execute(String[] args);
}
Run Code Online (Sandbox Code Playgroud)
然后你将使用 HashMap<String,Command>。