每个只使用一次的类是否应该是静态的?

时间:2015-12-30 08:35:20

标签: c# static

我已经看过关于这个的各种讨论,我想它可能有点基于意见,但我想知道的是,如果我知道我只会使用一次课程(一个实例),我应该只是为方便起见,让它静止?这是不好的做法还是会产生问题?

例如。如果我制作一个单人游戏,那么任何时候都只会有一个玩家。我应该public static class Player{}还是坚持public class Player{} Player player = new Player();

这个想法是,通过不需要传递引用来节省时间。

3 个答案:

答案 0 :(得分:5)

请注意,仅使用一次类和仅使用一个类的实例(下面有更多内容)之间存在差异。

静态类通常是类,其目的是公开一组功能和/或常量,这些功能和/或常量独立彼此并且不需要维护状态信息。如果这是您的课程所做的,那么您可以将其声明为静态。

在你的例子中,我不认为这是要走的路。 Player对象可能具有不同的状态和其他属性,例如位置,健康状况等。当您尝试在游戏中拥有2名玩家时,您的设计就会中断。

通常只通过Singleton设计模式实现一个类的一个实例。此模式的目的是为您提供给定对象的相同实例,无论您实际使用该对象多少次。

答案 1 :(得分:1)

这是不好的做法。你不知道你的游戏将如何扩展,所以在一段时间内你会决定在你的课程背后进行抽象,它会将代码重构为hellpit。 例如,如果您决定从人类或某个抽象类 VisibleObject 继承播放器的内容,您将陷入两难境地。 / p>

那么,何时使用静态?初学方法,扩展类,一些非常简单的领域,这就是全部。

答案 2 :(得分:-1)

静态类与其他类基本相同,但区别在于您无法实例化。 在上面的例子中,你使用静态类并不重要。