iOS
singleton
シングルトン

[iOS] XCodeのPlaygroundでシングルトンを試す

More than 1 year has passed since last update.

デザインパターンとして多様されるシングルトン。
超基本だけど、ほんとにシングルトンとして機能しているか自信なかったのでXcodeのPlaygroundで試してみました。
何かご指摘があればコメントいただけると幸いです。

SingletonPlayground.playground
/*
 シングルトンを保証する検証。

 Singletonクラスのobjクラス変数を複数回呼び出して、
 Objectクラスのvalueクラス変数が1のままならシングルトンとして正しい。
 */
class Singleton {
    static var obj = Object()
    var obj2 = Object()
}

class Object {
    static var value = 0
    init() {
        Object.value += 1
    }
    func get() -> Int {
        return Object.value
    }
}

print(Singleton.obj.get())
print(Singleton.obj.get())    // シングルトンでなければ2になっているはず
print(Singleton().obj2.get()) // シングルトンではないので初期化されカウントアップ
print(Singleton().obj2.get())
print(Singleton.obj.get())

//  結果
// "1"
// "1"
// "2"
// "3"
// "3"