假设我们有一个游戏类。
游戏类需要传递对其 spritebatch 的引用。也就是说,类调用传递它的方法,然后该方法又将它传递给其他方法,直到最终使用它。
这对性能不利吗?只使用静力学会更好吗?
不过,我看到了静态的一个明显缺点,即无法在同一个应用程序中创建重复的功能。
回答您的问题并不容易,因为您没有具体提及要求,但通常我可以给您一些建议。
因此存在设计或性能权衡,除非您的方法被调用数百万次,否则您永远不必考虑公共静态属性。
任何事情都有缺点和优点。
从性能的角度来看,这是好是坏,取决于计算密集程度以及在游戏中使用该代码的频率。
因此,这是我对主题的考虑。
传递like参数:
缺点:在堆栈上传递更多变量,将其推送到函数调用中。它非常快,但同样,这取决于您正在谈论的代码是如何使用的,所以没有它可以带来一些好处,这就是为什么插入这一点在缺点。
优点:您明确表明调用堆栈顶部的函数需要该参数用于read 和/或 write,因此查看该代码的人可以很容易地想象您的调用的语义依赖性。
像静态一样使用:
缺点:没有明确的证据(如果不是通过直接知识或良好的书面文档)哪些参数会或可能影响该函数内的微积分。
优点:对于链中的所有函数,您不会将它传递到堆栈上。
我个人建议:像参数一样使用它,因为这清楚地表明了调用代码所依赖的内容,即使会有一些可衡量的性能缺陷,也很可能与您的情况无关。但同样,正如 Rico Mariani 一直建议的那样:测量,测量,测量......
静力学大多不是最好的方法。因为如果以后你想创建多个实例,你可能会遇到麻烦。
当然,传递引用会消耗一些性能,但取决于创建实例的数量,它或多或少会很重要。除非您每隔一小段时间就创建数百万个对象,否则这可能是个问题。