シングルトンってなんぞ

設計書(クラス)をもとに作られるのがインスタンス。このインスタンスを呼び出すにはこのようにした。

class hoge1() {
///
}

class hoge2() {
    let instance = hoge()
}

class hoge3() {
    let instance = hoge()
}

このようにすると、どこからでも同じものをコピーできてしまううえ、hoge2で変更したインスタンスはhoge3に反映されない。

こうしてコピーするのではなく、一つのインスタンスを一回だけ呼び出し、それを使い回すためにシングルトンが必要になる。

呼び出し方

class hoge1() {
    static let instance = hoge1()
}

class hoge2() {
    let instance = hoge1.instance
}

class hoge3() {
    let instance = hoge1.instance
}

staticをつけることによって、このプロパティは1度だけしか呼び出されなくなる。

コメント

タイトルとURLをコピーしました