- 已关闭**。此问题为opinion-based。当前不接受答案。
- 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
九年前就关门了。
Improve this question
将输入扫描器(如键盘)声明为类中的全局变量是否被认为是不良的编程实践?
例如:
public static Scanner input = new Scanner(System.in);
我正在处理来自各种方法的大量输入,使用公共变量似乎比向每个方法发送键盘要容易得多。
4条答案
按热度按时间jljoyd4f1#
最好创建一个特殊的类来获取输入和/或生成输出。
例如:
5t7ly7z52#
使用全局变量看起来容易得多,但从长远来看,它会使代码很难维护,你有没有想过创建一个类来处理键盘输入?通过良好的关注点分离,你最终会得到更干净的代码。
https://en.wikipedia.org/wiki/Separation_of_concerns
mkshixfv3#
根据对象应该如何使用,将定义放置它的位置。
如果Scanner必须只有一个示例,那么考虑将其设置为单例,而不是使用构造函数创建它。以下链接描述了单例:
http://www.javaworld.com/article/2073352/core-java/simply-singleton.html
然后,Scanner类可以有一个名为'getInstance'的公共静态方法,而不是将其作为静态全局方法。因此,您不会将scanner的示例绑定到任何特定位置,并且无论何时需要使用它,都可以从任何位置调用Scanner.getInstance来访问该类的底层示例。
knsnq2tg4#
总的来说,这是可以的,因为它是你的应用程序中非常常用的对象。但是,据我所知,你可能会面临两个问题:
所以这取决于你的应用程序的大小和它在多线程方面的使用方式。我会在家里做,但不会在工作中做。