Singleton
싱글턴은
특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체를 의미힌다.
애플리케이션이 요청한 횟수와는 관계없이 이미 생성된 같은 인스턴스를 반환한다.
즉, 애플리케이션 내에서 특정 클래스의 인스턴스가 딱 하나만 있기 때문에
다른 인스턴스들이 공유해서 사용할 수 있다.
Singleton Example
🍎 FileManager
애플리케이션 파일 시스템을 관리하는 클래스
FileManager.default
🍎 URLSession
URL 세션을 관리하는 클래스
URLSession.shared
🍎 NotificationCenter
등록된 알림의 정보를 사용할 수 있게 해주는 클래스
NotificationCenter.default
🍎 UserDefault
Key-value 형태로 간단한 데이터를 저장하고 관리할 수 있는
인터페이스를 제공하는 데이터베이스 클래스
UserDefaults.standard
🍎 UIApplication
iOS 에서 실행되는 중앙제어 애플리케이션 객체
UIApplication.shared
❓ When
싱클턴 디자인 패턴은
애플리케이션 내의 특정 클래스의 인스턴스가 하나만 존재하기 때문에
객체가 불필요하게 여러 개 만들어질 필요가 없는 경우에 많이 사용한다.
ex. 환경설정, 네트워크 연결처리, 데이터 관리 등
멀티 스레드 환경에서 동시에 싱글턴 객체를 참조할 경우
원치않는 결과를 가져올 수 있다.
📚 Reference
Swift) 싱글톤 패턴(Singleton Pattern)
boostcourse - iOS 앱 프로그래밍