[Swift]シングルトンとは何なのか?
Swiftにおけるシングルトンとは何なのか?という点について紹介します。
シングルトンとは何なのか?
シングルトンはデザインパターンの一つで、クラスのインスタンスが1つしか生成されないことを保証したものです。
これはSwiftに限らず、Javaなどでも使われるデザインパターンです。
Swiftでシングルトンを実装すると下記のようなコードになります。
class Hoge { static let shared = Hoge() private init() { } }
非常にシンプルに実装できます。
シングルトンを使う必要性は?
では、このシングルトンですが実装する意義はどういうものになるのでしょうか?
例えば、複数人で開発を行っている時にA、B、Cさんがそれぞれ特定クラスの機能を使ったコードを書いたとします。
それぞれが作業していくと、インスタンスが膨大なものになりリソースを食ってしまいます。
この時に、シングルトンでインスタンスは一つしか作成しないことを保証すれば、全員がそのインスタンスを参照するだけのコードを書くことができます。当然、口頭だけの取り決めだけでは不確実なのでコード内にその仕組み(シングルトン)を入れて、誰が開発に携わってもそのクラスからはインスタンスは一つしか作成できないようにします。(デザインパターン)