-
[공식문서] Singleton 공부해보기 1/2Archive/iOS & Swift 2021. 6. 13. 20:04728x90
Documentation Archive / Cocoa Core Competencies / Singleton
Singleton
Singleton 클래스는 앱이 요청하는 횟수와 상관없이 동일한 인스턴스를 반환함.
전형적인 클래스는 호출자가 원하는 만큼 클래스의 인스턴스를 생성하는 걸 허용함,
반면에 Singleton 클래스로는 프로세스 당 하나의 클래스 인스턴스만 있을 수 있음.
싱글톤 개체는 그것의 클래스의 리소스에 대한 전역 지점을 제공함.
Singletons은 이런 제어의 단일 지점이 바람직한 상황에서 사용됨, 예를들어 일반적인 서비스나 리소스를 제공하는 클래스가 있음.
Implementing KVO
팩토리 메소드를 통한 싱글톤 메소드로부터 전역 인스턴스를 얻음.
클래스는 처음 요청될 때 해당 인스턴스를 천천히 생성함, 그 이후에 다른 인스턴스를 만들 수 없음.
또한 싱글톤 클래스는 호출자가 인스턴스 복사, 유지, 해제하지 못하도록 함. 싱글톤 클래스가 필요한 경우 직접 만들 수 있음.
예를 들어 만약 다른 개체에 소리를 제공하는 클래스가 앱에 있는 경우, 싱글톤으로 만들 수 있음.
몇몇 코코아 프레임워크 클래스는 싱글톤임. 그것들은 NSFileManager, NSWorkspace 그리고 UIKit에 UIApplication, UIAccelerometer가 포함됨.
싱글톤 인스턴스를 반환 하는 팩토리 메소드의 이름은 다음과 같음,
관례상, 코코아 프레임 워크의 예로 sharedFileManager, sharedColorPanel, sharedWorkspace, sharedClasssType 형식임
Article : Managinf a Shared Resource Using a Singleton
Managing a Shared Resource Using a Singleton
- 공유 클래스 인스턴스는 단일 공유 클래스 인스턴스를 단일 리소스를 사용해서 공유 리소스에 대한 엑세스 제공함.
Overview
전체적으로 엑세스 가능한 클래스의 공유 인스턴스를 싱글통을 사용해서 제공함.
앱을 통해 공유 된 서비스 또는 리소스에 대한 통합 엑세스 지점을 제공하는 방법으로 자신만의 싱글톤을 만들 수 있음,
사운드 효과를 재생하는 오디오 채널이나 HTTP 요청을 만드는 네트워크 관리자 처럼.
Create a Singleton
정적 유형 프로퍼티를 사용해 단순 싱글톤을 생성함, 한번만 Lazy 초기화를 보장됨, 여러 스레드를 통해 액세스 한 경우에도 마찬가지임.
class Singleton { static let sharedInstance = Singleton() }
공식문서 : Documetation Archive
728x90'Archive > iOS & Swift' 카테고리의 다른 글
[OpenLibrary] Then 라이브러리 사용해보기 (0) 2022.04.29 [공식문서] MVC: Model-View-Controller 공부해보기 1/2 (0) 2021.06.13