我已经看过关于这个的各种讨论,我想它可能有点基于意见,但我想知道的是,如果我知道我只会使用一次课程(一个实例),我应该只是为方便起见,让它静止?这是不好的做法还是会产生问题?
例如。如果我制作一个单人游戏,那么任何时候都只会有一个玩家。我应该public static class Player{}
还是坚持public class Player{}
Player player = new Player();
这个想法是,通过不需要传递引用来节省时间。
答案 0 :(得分:5)
请注意,仅使用一次类和仅使用一个类的实例(下面有更多内容)之间存在差异。
静态类通常是类,其目的是公开一组功能和/或常量,这些功能和/或常量独立彼此并且不需要维护状态信息。如果这是您的课程所做的,那么您可以将其声明为静态。
在你的例子中,我不认为这是要走的路。 Player
对象可能具有不同的状态和其他属性,例如位置,健康状况等。当您尝试在游戏中拥有2名玩家时,您的设计就会中断。
通常只通过Singleton
设计模式实现一个类的一个实例。此模式的目的是为您提供给定对象的相同实例,无论您实际使用该对象多少次。
答案 1 :(得分:1)
这是不好的做法。你不知道你的游戏将如何扩展,所以在一段时间内你会决定在你的课程背后进行抽象,它会将代码重构为hellpit。 例如,如果您决定从人类或某个抽象类 VisibleObject 继承播放器的内容,您将陷入两难境地。 / p>
那么,何时使用静态?初学方法,扩展类,一些非常简单的领域,这就是全部。
答案 2 :(得分:-1)
静态类与其他类基本相同,但区别在于您无法实例化。 在上面的例子中,你使用静态类并不重要。