본문 바로가기
Object-Oriented Programming/Design Pattern

Singleton Pattern

by yongmin.Lee 2021. 2. 17.

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