我有一个有几个属性的类,它们作为一个组一起工作。 text
,textColor
,font
等等......
我有一个方法,然后根据所有这三个属性呈现这个。
目前我已将它们定义为......
var text: NSString = "DEFAULT TEXT" {
didSet {
updateText(text, baseFont: font)
}
}
var font: UIFont = UIFont.systemFontOfSize(1) {
didSet {
updateText(text, baseFont: font)
}
}
拥有相同的代码块并不合适。 (我必须在其他参数组上再做两次。
关于我如何整理它的任何想法?
嗯......在打字的时候我一直在考虑使用结构而不是三个独立的属性。想法?
答案 0 :(得分:1)
我没有看到重复updateText
调用作为几个属性的didSet
观察者有什么问题。这里有难闻的气味,如果有的话,在我看来updateText
宣布的方式。如果它总是使用self.text
和self.font
,为什么不将它构建到它的定义中并且不给它任何参数?这样,你可以更整洁地写出这个:
var text: NSString = "DEFAULT TEXT" {
didSet { updateText() }
}
var font: UIFont = UIFont.systemFontOfSize(1) {
didSet { updateText() }
}
就我个人而言,我认为你要表达的是非常整洁(和DRYly):当任何这些属性更新时,也要更新界面。