싱글톤 패턴이란 ?
공용으로 사용할 객체를 하나만 생성하여서 공용으로 사용하는 방법
처음에 들으면 무슨 말인가 싶습니다.
근데 실제로 코드를 짜다보면 제가 객체를 마구 생성해서 한 번 피를 봤던 경험이 있었습니다.
우선 공용으로 사용할 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 |