Edited at

[Swift]シングルトンとは?

More than 1 year has passed since last update.


シングルトンとは?

クラスが一つのインスタンスしか持てないデザインパターンの一つです。

インスタンスがグローバルに使えるので、初期化のプロセスがないのが便利。Singletonは初期化が一回しかいらない時などによく使う:データベースコネクター、ログインハンドラーなど。

class SomeManager {

static let shared = SomeManager()
private init() {}
}

//With usage:
SomeManager.shared

メモ書き:この記事によると、初期化にprivateにすると、シングルトンの唯一性が保証されるみたいです。さらには、コンストラクタを作るとエラーを出してくれるのでこれも便利。


シングルトンのデメリット

インスタンスをパスしたくないから、という理由でシングルトンを作るのは、バッドプロクティスらしいです。なぜなら、初期化がクラスに依存しているのでテストし辛いからです。