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
[Swift] Singleton vs Static
면접 질문 중 단골 질문인 Singleton vs Static 을 정리해보자! 싱글 톤(singleton) 싱글 톤 패턴은 하나의 객체만을 생성하기를 제한하는 패턴으로 타입 변수로 인스턴스를 하나 가지고 init 생성자는 priv
velog.io
'Object-Oriented Programming > Design Pattern' 카테고리의 다른 글
Factory Method Pattern, 팩토리 메소드 패턴 (0) | 2022.05.09 |
---|---|
Facade Pattern (0) | 2022.05.04 |
Strategy Pattern (0) | 2022.04.15 |
GoF Design Patterns (0) | 2022.03.14 |
Repository 패턴 (0) | 2021.12.08 |