如果我总是在不同的 class 中初始化一种类型的 class,这对性能来说是好是坏?
Is this bad or good for performance if I always initialize one type of class in different classes?
世界!我有一个 Actions
class,我在我的 sprite-kit 游戏中保存所有动作、动画和声音播放。所以在我所有的 SKNode
、SKScene
、SKSpriteNode
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()
希望对您有所帮助
世界!我有一个 Actions
class,我在我的 sprite-kit 游戏中保存所有动作、动画和声音播放。所以在我所有的 SKNode
、SKScene
、SKSpriteNode
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()
希望对您有所帮助