swift - 如何分解一个符合具有共享实例变量的多个接口(interface)的类?

标签 swift swift-extensions

class X: Interface1, Delegate1, Delegate2 {
    var sharedVariable = true
    .... very long code comes here, that implements the delegates ...
}

我现在怎样才能分解这个漫长的类(class)呢?我正在考虑使用扩展,例如

extension X: Delegate1 {
    // .. some code here, uses sharedVariable
}

extension X:Delegate2 {
    // and some here, also uses sharedVariable
}

这种方法的问题是,由于两个扩展都使用共享变量,因此将其分解为扩展没有多大用处...... 或者是吗?我还能用它做什么?

最佳答案

这取决于其余代码的结构。将代码分解为扩展的一个很好的理由是在适当的范围和/或上下文中提供每个扩展。在极端情况下,可以将类型仅实现为数据,并根据各种上下文和范围所需的观点提供所有函数和计算属性作为扩展。

关于swift - 如何分解一个符合具有共享实例变量的多个接口(interface)的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085625/

相关文章:

Swift 数组下标扩展 "Range<T> is not convertible to Int"

arrays - 带有可选参数的 Swift 数组扩展

swift - 自身,协议(protocol)扩展和非最终类

xcode swift 如何拆分图像?

ios - SearchDirectories 与 URLsDirectory - iOS

swift - 如何将 Swift 声明标记为在 iOS 中可用而在 macOS 中不可用

swift - 何时使用通用参数子句

swift - 沿 X 和 Y Axis 随机生成

ios - 仅在离开和返回时删除/添加单元格

swift - 数组的通用扩展不起作用