싱글톤은 개발자에게 정말 편리하게 코딩을 할 수 있도록 도와주는 디자인 패턴이다. 하지만 싱글톤 패턴을 남용한다면 앱 안에서의 가장 큰 휴먼 에러를 남길 수 있다.
앞선 디자인 패턴을 얘기하다가 싱글톤 패턴도 정리하면 좋을 것 같아서 다시 한 번 서칭하고 공부하여 내용을 남긴다.
싱글톤 패턴은 주로 앱의 설정, 로깅, 데이터베이스 연결, 캐시 관리 등 여러 곳에서 활용된다.
class AppSettings {
static let shared = AppSettings()
var themeColor: UIColor = .blue
var notificationEnabled: Bool = true
private init() {
// 초기화 로직
}
// 추가적인 설정 관련 메서드나 프로퍼티들...
}
class NetworkClient {
static let shared = NetworkClient()
private init() {
// 초기화 로직
}
func request(url: URL, completion: (Data?, Error?) -> Void) {
// 네트워크 요청 로직
}
// 추가적인 네트워크 관련 메서드들...
}
class DataCache {
static let shared = DataCache()
private var cache: [String: Data] = [:]
private init() {
// 초기화 로직
}
func getData(for key: String) -> Data? {
return cache[key]
}
func setData(_ data: Data, for key: String) {
cache[key] = data
}
// 추가적인 캐시 관련 메서드들...
}