// 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
// 다른 곳에서 사용해도 하나의 인스턴스를 공유하게 된다!
장점
단점