我正在试图找出设计游戏结构的最佳方式。
目前我在各地存储类实例,但我更喜欢使用直接静态访问。
例如,我有一个名为“ GameSaveSystem.cs ”的课程
此课程处理获取所有当前播放器的StorageDevice和所有存储相关信息。
所以我目前的策略是以下
---------------- MainClass.cs
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.cs
MultiPlayer(GameSaveSystem save_system) {
this.save_system = save_system;
}
我这样做的原因是因为在Java中我可以创建一个新的.Java文件并让它调用“ MainClass.main(args); ”
那么在那个额外的类中,我可以访问存储在整个类文件中的任何静态类成员或公共静态实例。
所以我想知道的是,使用实例会更安全吗?或者对于这种情况,我应该选择静态类吗?我希望游戏能够针对这类问题采取某种安全措施。
以下是我看到的获取课程访问权限的三种方式
静态访问 - 此人可以随时随地访问此课程(这是我首选的易用策略)。
ClassB.DoSomething();
存储在各处的实例 - 每个类都会创建一个已创建的类实例,以便他们可以随时访问它。类具有存储所需的所有实例,而不包含任何其他实例。
public class A(ClassB classB) {
this.classB = classB;
}
classB.DoSomething();
存储在一个类中的实例 - 1个类创建所有类的单个实例,通常只创建一个实例。然后,您将创建此类的实例,并将其存储到需要访问以前创建的实例的所有类中。只有存储主实例的类才能访问其他实例。
public class A(Main main) {
this.main = main;
}
main.getInstanceB().DoSomething();
答案 0 :(得分:0)
在我看来,你会因为阅读on this而受益。
基本上你选择哪一个更多是个人选择。当然,每种方法都有性能考虑因素,但语义也很重要。作为软件工程师,您可以自行决定什么是最好的。