タグ

singletonに関するRYO1225のブックマーク (2)

  • SwiftにおけるSingletonパターン実装方法がBeta4でついに完成!? - Qiita

    過去に3回ぐらいSingletonパターンの記事を見かけた事がありますが、Singletonパターンと言い張るためには「インスタンスが1つしか生成されない事を保証する」という約束ごとがあります。 Beta3まではこれが言語仕様的に困難であり、過去に紹介されてきたものは 「なんちゃってSingletonパターン」だったわけなのですが、Xcode6 Beta4でアクセスコントロールが可能になり、ついに1インスタンスを保証する事ができるようになりました。 class Singleton { private init() { // 1.イニシャライザをprivateに } class var instance: Singleton { // 2.インスタンスを取得するためのプロパティなり関数なりを用意し、共有インスタンスを返す struct Instance { static let i = Si

    SwiftにおけるSingletonパターン実装方法がBeta4でついに完成!? - Qiita
  • Swiftでシングルトンパターンを実装する3つの方法 - Qiita

    Swiftでシングルトンパターンを実装する方法はいくつかあるのでまとめました。 遅延初期化(lazy initialization)とスレッドセーフ(thread safety)を考慮された実装です。 遅延初期化はシングルトンのインスタンスを利用開始するまで当該インスタンスを生成しないことです。 スレッドセーフは複数のスレッドで同時にインスタンスの生成を試みても、誤って複数のインスタンスを生成しないことです。 この実装は以下のバージョンで確認しています。 Xcode6 Beta3 structのstatic定数で定義 (推奨) static定数に初期化したインスタンスを保持する実装です。ただSwiftのclassはstatic定数を利用できないので、structでネストしてstatic定数を保持しています。現状この実装方法が一番良いと言われています。 class Singleton { c

    Swiftでシングルトンパターンを実装する3つの方法 - Qiita
  • 1