如何使用共享实例变量分解符合多个接口的类?

时间:2016-01-29 13:21:18

标签: swift swift-extensions

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

我现在怎么能打破这个长班?我在考虑使用扩展名,比如

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

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

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

1 个答案:

答案 0 :(得分:0)

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