2017-05-30 19 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のクラスと構造体には2つの大きな違いがあります。クラスは継承を許可し、クラスは参照型ですが、構造体は値型です。

いくつかの相違点に基づいて決定してください。

Linkerのすべてが静的なので、参照と値の差は無関係になります。インスタンスがないからです。

これは、継承を残します。 Linkerをサブクラス化しますか?そうでなければ、構造体を使用します。はいの場合は、クラスを使用します。

今、あなたはenumについて質問しています。Linkerには定数だけを持つようには見えないので、おそらくstructの上でそれを排除できます。

+0

お返事ありがとうございます。私はそうだと思いました。私はちょうど利便性、コードスタイル、継承、オートコンプリートバリアントなどに影響を与えることができますか? –

関連する問題