Swift 属性 - 避免对 n 类进行多次声明?
Posted
技术标签:
【中文标题】Swift 属性 - 避免对 n 类进行多次声明?【英文标题】:Swift properties - avoid multiple declarations over n class? 【发布时间】:2015-12-21 11:11:55 【问题描述】:我在 Swift 中定义了以下协议:
protocol Condition
var column : RepositoryTableColumn! get set
var sourceTable : RepositoryTable! get set
var conditionalValue : String! get set
var preventsClear : Bool! get set
func getCondition() -> String
func accept(visitor : ConditionVisitor)
并且该协议由(现在)8个类扩展,这意味着每个类都需要声明为:
class IsEqual : Condition
var column : RepositoryTableColumn!
var sourceTable : RepositoryTable!
var conditionalValue : String!
var preventsClear : Bool!
我的问题是,如何避免在每个类中都有这四个声明?我试图避免这种情况的原因是我不想重复代码,即在这种情况下是声明。
对于构造函数,我创建了 Condition 类的扩展,但这不能暗示属性,因为扩展不能容纳它们。
有什么建议吗?
【问题讨论】:
【参考方案1】:如果您的属性可以计算而不是存储,您可以创建Condition
的extension
,它为采用您的协议的任何内容提供默认实现。不幸的是,您不能将存储的属性添加到扩展中的类,因此如果简洁对您来说很重要,您可能必须重新构建您的模型。
【讨论】:
以上是关于Swift 属性 - 避免对 n 类进行多次声明?的主要内容,如果未能解决你的问题,请参考以下文章