gpt4 book ai didi

swift - 使用 Swift 的 didSet 访问器,我是否仍然需要隐藏对属性的访问

转载 作者:搜寻专家 更新时间:2023-11-01 07:14:25 24 4
gpt4 key购买 nike

我知道,对于典型的面向对象编程,您不应该直接授予对您的属性的访问权限,而应该拥有一个与该私有(private)属性交互的函数。由于 Swift 有一个属性的 didSet 访问器,是否有必要将该属性私有(private)化,或者我可以不让它私有(private)化并从它的父级访问它

private var coins: Int = 0 {
didSet {
coinsLabel.text = "\(coins)"
}
}

func setCoins(amount: Int) {
coins = amount
}

func getCoinsAmount() {
return coins
}

//Setting the value from the parent
gameHUD.setCoins(amount: 50)

//retrieving the value from the parent
let coins = gameHUD.getCoinsAmount()

或者只是让硬币不私有(private)化并直接从父级设置/获取它是不好的做法

gameHUD.coins = 50
let coins = gameHUD.coins

最佳答案

不,你不知道。 Swift 中的属性是一种灵活、成熟的抽象机制。因此,请继续使用它来定义您的公共(public) API。无需导出 setter 和 getter。

例如,几乎所有 Apple/iOS 原生框架都会导出大量公共(public)属性。请记住,除了 property observers 你提到(即 willSetdidSet)你也可以定义 computed properties 。正如我之前所说,这是一个成熟的抽象机制。

关于swift - 使用 Swift 的 didSet 访问器,我是否仍然需要隐藏对属性的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com