たまにはまじめなドリーマーday's

普段はやんちゃな悪ふざけドリーマーが、たまーにまじめになって書きおろす開発者の苦悩と閃き

swift3でシングルトンクラスを作ってみる

どうも、はぐっです・ω・♪

今回は、

「swift3でシングルトンクラスを作る」

という大事な大事なデザインパターンの紹介です。

というのも、swiftが出たてだったときに作成していたアプリを
swift3対応する機会があったのですが、

まーーーーーーー、書き方が変わっていること。変わっていること。

でね。

いろいろ変えた中で、印象的だったこの「シングルトンクラス」の書き方について、
めもっとこうと思ったわけで。

そもそも言葉の説明からかるーく。

デザインパターン

プログラマがよく出会う問題に、うまく対処するための設計。
「再利用性」が高く、柔軟な設計ができるので、この問題に出会ったときはこの対処方法、と知っておくと便利!
えらーい人が、その指針を残してくれた。ぎゃんぐおぶふぉー。

シングルトンクラス(Singletonパターン)

唯一の存在を保証するクラス。
インスタンスが必ず一つであることを保証したいクラスがあったとき、それを保証してくれるのがシングルトン。
目の付け所がシングルトン。

んで、本題。

昔のシングルトンと、swift3のシングルトンの比較として
Haguhomsクラスの実装をしてみる。

昔のシングルトン

class Haguhoms: NSObject {
  class var sharedInstance: Haguhoms {
    struct Static {
      static let instance: Haguhoms = Haguhoms()
    }
    return Static.instance
  }
}

はい、しんぐるとーん。

swift3のシングルトン

class Haguhoms: NSObject {
  static let sharedInstance = Haguhoms()
}

はい、しんぐるとーん。

…まじ?

ってぐらい簡単に書けるようになっていて、もう驚いた。
衝撃。なんなら衝動。

ってことで、みなさんswift3でシングルトン、ぜひ使ってくださいねー!

最後に、Haguhomsシングルトンクラスを使うViewContoller側の記述を最後にお届け。

class ViewController: UIViewController {
  var haguhoms: Haguhoms = Haguhoms.sharedInstance
}