2016-02-09 74 views
0

使用第二種方法有什麼好處,因爲兩者都可以正確執行相同的操作?返回對象比原始類型有什麼好處?

進口的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 
    } 

} 

回答

1

我想add2遵循「構建者模式」和允許「流暢接口」與方法鏈接:

let result = someInput.add(someThingElse).square().multiply(three) 

但是num場大概應該是一個常數(let)。否則,您無法安全地通過這些MathOperation實例(有人可能會更改它們的值)。

MathOperation應該包含的不僅僅是一個單一的數字,否則該類有點毫無意義,可以直接使用Double。我想它可能會記住構造它的操作序列,以便它可以打印出像「(1 + 3)^ 2」這樣的術語來描述它自己。