Security 静态类与私有实例-优点/缺点-阅读了解更多信息
我正试图找出设计游戏结构的最佳方法 目前我在任何地方都存储类实例,但我更喜欢使用直接的静态访问 例如,我有一个名为“GameSaveSystem.cs”的类 这个类负责为所有当前玩家获取一个StorageDevice和所有与存储相关的信息 因此,我目前的策略如下 ----------------MainClass.csSecurity 静态类与私有实例-优点/缺点-阅读了解更多信息,security,static,singleton,instance,private,Security,Static,Singleton,Instance,Private,我正试图找出设计游戏结构的最佳方法 目前我在任何地方都存储类实例,但我更喜欢使用直接的静态访问 例如,我有一个名为“GameSaveSystem.cs”的类 这个类负责为所有当前玩家获取一个StorageDevice和所有与存储相关的信息 因此,我目前的策略如下 ----------------MainClass.cs public static void Main(string[] args) { new Main(); } ----------------Main.cs pub
public static void Main(string[] args) {
new Main();
}
----------------Main.cs
public Main() {
GameSaveSystem save_system = new GameSaveSystem();
singlePlayer = new SinglePlayer(save_system);
multiPlayer = new MultiPlayer(save_system);
}
----------------SinglePlayer.cs
SinglePlayer(GameSaveSystem save_system) {
this.save_system = save_system;
}
----------------多人游戏
MultiPlayer(GameSaveSystem save_system) {
this.save_system = save_system;
}
我这样做的原因是,在Java中,我可以创建一个新的.Java文件,并让它调用“MainClass.main(args);”
因此,在这个额外的类中,我可以访问存储在整个类文件中的任何静态类成员或公共静态实例
所以我想知道的是,使用实例会更安全吗?或者对于这种情况,我应该只使用静态类吗?我希望游戏能够针对这类问题提供某种安全性
下面是我见过的3种获取类访问权限的方法
静态访问-用户可以随时随地访问该类(这是我的首选策略,以便于使用)。
ClassB.DoSomething();
public class A(ClassB classB) {
this.classB = classB;
}
classB.DoSomething();
public class A(Main main) {
this.main = main;
}
main.getInstanceB().DoSomething();
实例存储在任何地方-每个类都将存储一个类的已创建实例,以便它们可以随时访问它。类存储了它们需要的所有实例,而没有其他任何内容。
ClassB.DoSomething();
public class A(ClassB classB) {
this.classB = classB;
}
classB.DoSomething();
public class A(Main main) {
this.main = main;
}
main.getInstanceB().DoSomething();
存储在一个类中的实例-1类创建所有类的单个实例,这些类通常只创建一个实例。然后创建该类的实例,并将其存储到需要访问先前创建的实例的所有类中。只有存储主实例的类才能访问其他实例。
ClassB.DoSomething();
public class A(ClassB classB) {
this.classB = classB;
}
classB.DoSomething();
public class A(Main main) {
this.main = main;
}
main.getInstanceB().DoSomething();
在我看来,读一点书你会受益匪浅 从本质上说,你选择哪一个更像是个人的选择。当然,每种方法都有性能方面的考虑,但语义也很重要。作为软件工程师,您可以决定什么是最好的