싱글톤 패턴이란?
특정 용도나 목적으로 객체를 1개만 생성
이를 공용으로 사용하는 패턴
Market의 정보를 저장하는 클래스
class MarketInfo {
// static 프로퍼티로 인스턴스 생성
static let shared = MarketInfo()
var title: String?
var address: String?
var phone: Int?
// init 함수 접근제어자를 private 지정
private init() { }
}
Market 클래스 (싱글톤 패턴 적용) 접근 방법
class MarketInfo {
// static 프로퍼티로 인스턴스 생성
static let shared = MarketInfo()
var title: String?
var address: String?
var phone: String?
// init 함수 접근제어자를 private 지정
private init() { }
}
let marketInfo = MarketInfo.shared
marketInfo.title = "가나마트"
let marketInfo2 = MarketInfo.shared
marketInfo2.address = "서울특별시 종로구"
let marketInfo3 = MarketInfo.shared
marketInfo3.phone = "010-1234-5678"
print(marketInfo3.title!)
print(marketInfo3.address!)
print(marketInfo.phone!)
// 가나마트
// 서울특별시 종로구
// 010-1234-5678
각 변수마다 MarketInfo.shared 를 통해
shared란 static 프로퍼티로 접근하여 인스턴스를 공유
★ 멀티 스레드 환경에서 동시에 싱글톤을 사용하는 경우
2개 이상의 인스턴스가 생성될 수 있는데
이는 static let 으로 선언하는 것으로 1회 생성을 보장 받음
= Thread Safe ★
★ 여기서 Thread Safe: 여러 스레드에서 어떤 객체에 대해
동시에 접근이 이루어져도 프로그램의 동작에 이상이 없음 ★
'알아두면 좋은 내용 > iOS' 카테고리의 다른 글
Bounds와 Frame (0) | 2024.01.09 |
---|---|
스위프트에서 Extension은 어떻게 사용되나요? (0) | 2024.01.05 |