使用第二种方法有什么好处,因为两者都能正确执行相同的操作?
导入UIKit
class MathOperation: NSObject
{
var num: Double = 0
func add(a:MathOperation)->Double
{
num = num + a.num
let result = num
return result
}
func add2(a:MathOperation)->MathOperation
{
let result = MathOperation()
result.num = num + a.num
return result
}
}
答案 0 :(得分:1)
我认为add2
遵循"构建器模式"并允许一个流畅的界面"用方法链接:
let result = someInput.add(someThingElse).square().multiply(three)
但num
字段应该是常量(let
)。否则,您无法安全地传递这些MathOperation
实例(有人可能会更改其值)。
并且MathOperation
应该包含的不仅仅是一个数字,否则该类有点无意义,可以直接使用Double
。我想它可能会记住构造它的操作顺序,因此它可以打印一个像"(1 + 3)^ 2"描述自己。