Singleton Pattern
5583 ワード
Singleton Pattern単色クラスが返すインスタンスの数は、アプリケーションが要求した回数に関係ありません.
モノトーンパターンは、1つの特定クラスのオブジェクト のみを生成する.特定の用途のためのインスタンスを作成し、共通の目的のために を使用する.例: 同じインスタンスを一緒に入力したいのですが、結果はそうではありません. モノトーンモード使用時:
長所リソースの共有が容易 メモリ のみ使用
短所が想像以上にあちこちで使われていると、私たちがどのオブジェクトにつながっているのかを見つけるのは難しい. つまりメンテナンスが困難になる可能性がある コメントリンク
// Person 클래스가 있다
// name과 age 같은 곳에서 입력 받는 곳이 아닌
// 서로 다른 장소에서 입력 값을 받는 다고 생각해보자
class Person {
var name: String?
var age: Int?
}
//A ViewController
let person = Person()
person.name = "haha"
// name = haha, age = nil
-------------------------
//B ViewController
let person = Person()
person.age = 20
// name = nil, age = 20
// class를 사용하는 이유 싱글톤패턴은 하나의 인스턴스를 여러군데서 참조하여 쓰는 것이다.
// class의 특징 중 하나는 reference타입이라는 것이다.
class Person {
//
// 전역으로 사용할 것이기 때문에 static(타입 프로퍼티)사용
static let shared = Person()
var name: String?
var age: Int?
// Init 함수를 호출해 인스턴스를 또 생생하는 것을 막기 위해 접근 제어자 private
private init(){ }
}
//A ViewController
let person = Person.shared
person.name = "haha"
// name = haha, age = nil
-------------------------
//B ViewController
let person = Person.shared
person.age = 20
// name = haha, age = 20
// 다른 곳에서 사용해도 하나의 인스턴스를 공유하게 된다!
メリットとデメリット長所
短所
Reference
この問題について(Singleton Pattern), 我々は、より多くの情報をここで見つけました https://velog.io/@strangeman/Singleton-Patternテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol