2016-12-27 4 views
0

私は静的クラスから1つのすべての機能を取得するため、しばらくシングルトンを使用していません。私が気づくべきである2つの間に違いがありますか?Swiftでは、シングルトンとクラスの静的バージョンの違いは何ですか?

シングルトン例:

SomeManager.sharedInstance.user 

静的クラスの例:使用に

class SomeManager { 
    static var user: User! 
    init(user: User) { 
     SomeManager.user = user 
    } 
} 

:使用に

class SomeManager { 
    static let sharedInstance = SomeManager() 
    var user: User! 
    init(user: User) { 
     self.user = user 
    } 
} 

SomeManager.user 

私は明らかな違いは、クラス全体が静的になり、もう1つが静的な特定の部分(静的であることが望ましい)を宣言していることです。どちらか一方を使用する理由はありますか?

ネットワークシングルトンとその静的メソッドを何も含まないクラスで、多数の静的メソッドを使用してアクセスするシングルトンクラスのネットワークコールがあるネットワークをセットアップしています。私はこれが私のシナリオに適切な範囲を持っていると思っていますが、メソッドの品質を保証するのに十分な研究をしていません。

例:使用に

class NetworkCalls { 
    static let network = Network() 

    static func getToken(completion:() -> Void) { 
     network.apiGetToken() { 
      completion() 
     } 
    } 
} 

NetworkCalls.getToken() { 
    print("Network Call Completed") 
} 

それは正常に動作しますので、私は唯一の効率の問題を探しています、考える事、そしてこれと代替の間の違いメソッド。任意のヒント/アドバイスは高く評価されるだろう!

+1

可能な複製(http://stackoverflow.com/questions/37806982/difference-between -static-function-and-singleton-class-in-swift)を使用します。 –

答えて

0

私は間違っているかもしれませんが、シングルトンのアイデアは、生涯(ほとんどの場合)で一度しか初期化されず、寿命の間に状態の検証のために主に使用される、あなたのアプリの

静的なクラスは、より一般的なクラスの使用の種類です。

あなたは静的クラスで同じことを行うことができますAlthought ... [迅速で静的関数とシングルトンクラスの違い]の

関連する問題