如果我总是在不同的 class 中初始化一种类型的 class,这对性能来说是好是坏?

Is this bad or good for performance if I always initialize one type of class in different classes?

世界!我有一个 Actions class,我在我的 sprite-kit 游戏中保存所有动作、动画和声音播放。所以在我所有的 SKNodeSKSceneSKSpriteNode classes 中,我总是初始化这个 Actions class。这对性能有好处吗?或者我必须初始化一次,例如在 GameViewController 中,然后将此 class 的副本传递给所有其他 classes,我需要在哪里?

正如 Fogmeister 在他的评论中提到的,您可以使用静态方法来实现这一点。这也应该有助于提高性能。

如果您查看 SKAction 文档,您会注意到它也使用 class 变量和方法。

一般来说,如果您不需要多次实例化一个 class,您的情况就是一个很好的例子,那么最好使用 static/class 方法或单例。

您可以使用 class、结构或枚举。我更喜欢使用枚举,因为你不能意外地实例化它们或者需要添加一个私有初始化器。

// Class
class SKActionHelper {

     static var someProperty = ...

     static func someMethod() { 
         ... 
     }
 }

 // Struct
 struct SKActionHelper {

     static var someProperty = ...

     static func someMethod() { 
         ... 
     }
 }

 // Enum
 enum SKActionHelper {

     static var someProperty = ...

     static func someMethod() { 
         ... 
     }
 }

现在您可以在项目的任何地方调用这些属性或方法,而不需要每次都实例化 class。

 SKActionHelper.someProperty = ...
 SKActionHelper.someMethod()

希望对您有所帮助