gpt4 book ai didi

ios - 是否有关于如何从 Swift 中的类构造函数中提取参数的最佳实践?

转载 作者:行者123 更新时间:2023-12-01 16:06:34 25 4
gpt4 key购买 nike

假设我有一个类:

class CleanerService: CleanerServiceProtocol {

private let databaseService: DatabaseServiceProtocol
private let localStorageService: LocalStorageServiceProtocol
private let preferenceService: PreferenceServiceProtocol
private let tooltipService: TooltipServiceProtocol

init(databaseService: DatabaseServiceProtocol, storageService: LocalStorageServiceProtocol, preferenceService: PreferenceServiceProtocol, tooltipService: TooltipServiceProtocol) {
self.databaseService = databaseService
self.localStorageService = storageService
self.preferenceService = preferenceService
self.tooltipService = tooltipService
}

}

我想最小化实际参数数量。但我也想确保我注入(inject)的变量在类之外是不可访问的(比如私有(private)获取)。

从常见的做法来看,有没有好看的解决方案?
也许值得使用带参数的结构或仅使用类 setter 来提取它?

最佳答案

我尝试使用元组(多个?)作为类型别名。

typealias Dependencies = {
databaseService: DatabaseServiceProtocol
// ...
}

class CleanerService: CleanerServiceProtocol {
private let dependencies: Dependencies

init(dependencies: Dependencies) {
self.dependencies = dependencies
}
}

但这有缺点:
  • 添加或删除依赖项变得很难,你真的不知道
    由于 Xcode 不够智能而添加或删除的内容
  • 你一直
    需要输入dependencies.something访问依赖项。

  • 所以我已经恢复使用参数。
    也许这对你有用。

    关于ios - 是否有关于如何从 Swift 中的类构造函数中提取参数的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59236184/

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