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