設計書(クラス)をもとに作られるのがインスタンス。このインスタンスを呼び出すにはこのようにした。
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度だけしか呼び出されなくなる。
コメント