シングルトンとは?
クラスが一つのインスタンスしか持てないデザインパターンの一つです。
インスタンスがグローバルに使えるので、初期化のプロセスがないのが便利。Singletonは初期化が一回しかいらない時などによく使う:データベースコネクター、ログインハンドラーなど。
class SomeManager {
static let shared = SomeManager()
private init() {}
}
//With usage:
SomeManager.shared
メモ書き:この記事によると、初期化にprivateにすると、シングルトンの唯一性が保証されるみたいです。さらには、コンストラクタを作るとエラーを出してくれるのでこれも便利。
シングルトンのデメリット
インスタンスをパスしたくないから、という理由でシングルトンを作るのは、バッドプロクティスらしいです。なぜなら、初期化がクラスに依存しているのでテストし辛いからです。