Object-Oriented Programming/Design Pattern
Singleton Pattern
yongmin.Lee
2021. 2. 17. 16:37
Singleton?
- 싱글톤 객체는 응용 프로그램이 몇번 요청하는지에 관계없이 동일한 인스턴스를 반환
- 싱글톤패턴은 특정용도의 객체를 단 하나의 인스턴스만을 정적으로 생성하여 공용으로 사용하고자할때 사용 -> 주로 환경설정, 로그인 정보 등을 특정용도로 생성해둔 객체에 넣어두고 여러 객체에서 접근 가능하도록 하여 데이터를 사용
- 싱글톤 객체의 인스터스는 메모리에서 해제해주지 않는 이상 프로그램이 끝날 때 까지 메모리에 유지
Singleton in iOS example
class MySingleton {
static let shared = MySingleton()
// ...
}
// singleton classes
let screen = UIScreen.shared
let application = UIApplication.shared
let userDefaults = UserDefaults.standard
let fileManage = FileManager.default
let notification = NotificationCenter.default
let mySingleton = MySingleton.shared
Singleton 장점
- 싱글톤 패턴은 하나의 객체를 하나의 애플리케이션 내에서 공용으로 사용하기 때문에 Global Access 가능
Singleton 단점
- 싱글톤 인스턴스가 다양한 부분에서 참조되어 많은 일을 하거나 데이터를 공유할 경우, 다른 클래스의 인스턴스들 간 결합도가 높아져 설계에 위험이 존재하게 된다.
singleton vs static
https://velog.io/@leeyoungwoozz/Swift-singleton-vs-static