在一个类中将输入扫描器(例如键盘)声明为全局变量是否被认为是不好的编程实践?
比如:
public static Scanner input = new Scanner(System.in);
我正在处理来自多种方法的大量输入,使用公共变量似乎比将键盘发送到每个方法更容易。
在一个类中将输入扫描器(例如键盘)声明为全局变量是否被认为是不好的编程实践?
比如:
public static Scanner input = new Scanner(System.in);
我正在处理来自多种方法的大量输入,使用公共变量似乎比将键盘发送到每个方法更容易。
class IO {
Scanner scanner ;
public Scanner getScanner() {
return new Scanner();
}
public Scanner getScanner(File file) {
return new Scanner(new FileReader(file));
}
// Other types of scanners...
}
使用全局变量似乎更容易,但从长远来看,它会使代码难以维护。你有没有考虑过创建一个类来处理键盘输入?通过良好的关注点分离,你最终将得到更清晰的代码。
http://www.javaworld.com/article/2073352/core-java/simply-singleton.html
然后,不要将其作为静态全局变量,Scanner类可以有一个名为“getInstance”的公共静态方法。因此,您不会将扫描仪实例绑定到任何特定位置,每当需要使用它时,只需从任何地方调用Scanner.getInstance来访问该类的基础实例即可。总体来说,这是您应用程序中非常常见的对象,因此它还可以。但是,就我所看到的,有两个问题可能会影响您:
因此,这取决于您的应用程序的大小以及在多线程方面如何使用。我会在家里做这件事,但不会在工作中。