알아두면 좋은 내용/iOS

싱글톤 패턴 (Singleton Pattern)

밤새는 탐험가89 2024. 1. 12. 14:32

 

싱글톤 패턴이란?

 

특정 용도나 목적으로 객체를 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