본문 바로가기
Mobile/Swift

[Swift] Singleton Pattern 뽀개기

by 펭귄알 2022. 11. 7.

싱글톤 패턴이란 ?

 

공용으로 사용할 객체를 하나만 생성하여서 공용으로 사용하는 방법

 

처음에 들으면 무슨 말인가 싶습니다.

근데 실제로 코드를 짜다보면 제가 객체를 마구 생성해서 한 번 피를 봤던 경험이 있었습니다.

 

우선 공용으로 사용할 ViewModel을 예시로 들어서 설명하겠습니다.

이 VIewModel은 각각의 뷰에서 사용될 녀석인데 로그인한 유저의 데이터를 가지고 있습니다.

로그인한 데이터는 로그인한 유저의 Token값을 가지고 있습니다.

(Token을 키체인을 저장할 수도있지만 예시를 들겠습니다.)

이 토큰은 페이지를 접근할때마다 필요하게 됩니다.

 

근데 각 뷰마다 이렇게 ViewModel을 생성을 해버리면 뷰마다 각자 UserData를 가지게 됩니다.

 

그래서 아래의 방법으로 Singleton Pattern을 적용하면 하나의 뷰모델을 공용해서 사용할 수 있는 

뷰모델이 됩니다.

 

 

 

싱글톤 패턴 사용방법

 

static let shared = 공용으로 사용할 클래스()

 

 

해당 뷰모델에 접근할 때에는 이렇게 shared를 사용하여 접근을 합니다

Class를 각 뷰마다 생성하게 되면 ViewModel과 View의 관계는 일대일 관계가 되지만,

싱글톤 패턴을 이용하면 ViewModel과 View는 일대다 관계가 되어 공용된 값을 사용할 수 있게됩니다.

 

 

예시를 들어서 설명을 했는데 적절한 예시를 들었는지 .. 그래도 도움이 되시길바랍니다!

 

'Mobile > Swift' 카테고리의 다른 글

[SwiftUI] SwiftUI 문서 찍먹하기  (0) 2024.11.11
[Swift] RxSwift  (0) 2022.11.07
Optional 뽀개기  (0) 2022.11.06