2017-05-30 31 views
0

我想僅使用靜態方法構建服務對象。我應該使用結構體,類還是枚舉來處理這種情況?會有什麼不同?可能會影響編譯時間嗎?莫名其妙地影響速度?我知道結構對於實例更快。但它如何影響這種情況?具有靜態方法的服務對象的結構,類或枚舉?

您的想法?你有經驗嗎?

謝謝。

struct/class/enum Linker { 

    public static func skypeCall(contact:String) { 
     //... 
    } 

    public static func phoneCall(phoneNumber:String) { 
     //... 
    } 

    public static func openWebPage(url:String) { 
     //... 
    } 
} 
+1

或枚舉,比較[Swift常量:結構或枚舉](https://stackoverflow.com/questions/38585344/swift-constants-struct-or-enum) - 也適用於靜態方法。 –

+0

@JAL其實這可以基於事實。有一套非常有限的考慮因素。您可以客觀地比較選擇中的差異。 – rmaddy

+0

@JAL,所以你想說,沒有事實會影響性能與否? –

回答

2

在Swift中,類和結構之間有兩個關鍵的區別。一個類允許繼承,一個類是一個引用類型,而一個結構是一個值類型。

根據這些差異作出決定。

由於Linker中的所有內容都是靜態的,因此參考和值之間的差異變得無關緊要,因爲您不會有任何實例。

這樣就留下了繼承。你會繼續分類Linker嗎?如果沒有,請使用結構。如果是,請使用班級。

現在你問的是枚舉,你可能會認爲這是出於結構,因爲Linker似乎沒有任何常量,只是方法。

+0

謝謝你的回答。我是這麼想的。我只是想知道這個決定可以影響更多的不僅僅是方便,代碼風格,繼承,自動完成變種等... –