シングルトンとは?

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

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

//With usage:
SomeManager.shared

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

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

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

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.