シングルトンを使用したクラスでクラスメソッドとインスタンスメソッドを定義する
本日は、
- Swift2.xでのシングルトンパターンのクラスの定義の仕方
- そのクラスにおけるクラスメソッドとインスタンスメソッドの定義の仕方
- クラスメソッドとインスタンスメソッドの呼び出し方
について見ていきたいと思います。
シングルトンパターンのクラスの定義
まず、シングルトンパターンのクラスの定義の方法を見ていきましょう。
Swift1.2までとSwift2.xでは定義の仕方が異なります。
ここではSwift2.xの場合のみ書きます。
1 2 3 4 5 6 7 |
|
インスタンスは1つしか作られないので、
- 内容に変更がない変数ということで
let
を使用 - SingletonSampleクラスにおける固有の値ということで
static
を使用 - 外部クラスからインスタンス化することを防ぐために
private
でinit
を定義
となっています。
シングルトンパターンのクラスを利用するときは、
SingletonSample.sharedInstance
でOKです。
これで1つのインスタンスを使い回すことができます。
インスタンスメソッドの定義
次にシングルトンパターンにおけるインスタンスメソッドの定義方法について見ていきましょう。
まずは、定義する側です。
1 2 3 4 5 6 7 8 |
|
インスタンスメソッドを使うときは
1
|
|
という形で使うことができます。
SingletonSample.sharedInstance
で1つのインスタンスを使うことができるので、通常のクラスと使い方は同じですよね。
クラスメソッドの定義
最後にシングルトンパターンにおけるクラスメソッドの定義方法について見ていきましょう。
まずは、定義する側です。
1 2 3 4 5 6 7 8 |
|
クラスメソッドを使うときは
1
|
|
という形で使うことができます。
クラスメソッドはクラスをインスタンス化する必要なく、利用できるメソッドなので、
SingletonSample.sharedInstance
とインスタンスを通して利用せずに、 クラス名+メソッド名 で利用できるんですね。
本日は簡単ですが、以上になります。