본문 바로가기
CS

싱글톤 패턴

by 밤새는탐험가 2023. 12. 11.

싱글톤 패턴에 대해 알아봄

 

싱글톤 패턴이란?

 

객체를 1개만 생성하여 공용으로 접근할 수 있도록 하는 디자인 패턴 중 하나의 유형

 

예를 들어 노래의 정보를 저장하는 클래스가 하나 있다고 가정해봄

 

 

 

그리고 제목 / 장르 / 가수를 선택할 수 있게

각각의 ViewController가 있고

이를 노래라는 클래스에 저장한다고 생각해 보면

 

 ViewController에서 값들로

각 인스턴스의 프로퍼티에만 저장될 것임

 

 

이럴 때 사용하는 것이 바로 싱글톤 패턴임

이 클래스에서 인스턴스는 1개만 생성할 수 있도록 하고 

이 후에는 접근만 가능하도록 하게 함 

 

 

 

싱글톤 예제

 

// 노래 정보를 담을 클래스 생성
class MusicInfo {
	
    // static 키워드를 사용하여 타입프로퍼티 속성의 인스턴스 생성
    static let shared = UserInfo()
	
    // 각각의 저장 프로퍼티를 생성
    var musicName: String?
    var musicGenre: String?
    var singer: String?

	// 생성을 완전히 막기 위해 
    // private 접근제어자를 통해 init() 함수 접근제어자를 설정함 
    private init() { }
}

 

 

private 접근제어자를 init() 앞에 설정하여

혹시 모를 외부에서의 해당 프로퍼티 접근을 막음

 

 

 

// 제목 ViewController에서 접근한다고 가정하면

let musicInfo = MusicInfo.shared
musicInfo.musicName = "가시나"

 

 

 

싱글톤 패턴의 장점과 단점

 

 

먼저 장점은 다음과 같음 

 

(메모리 공간의 효율성과

동일한 값의 변수를 여러 곳에서 사용하여 발생할 오류 최소화)

 

 

 

단점은 다음과 같음 

 

 


출처 

https://cheershennah.tistory.com/223

 

싱글톤 패턴이란? singleton pattern

싱글톤 패턴이란? singleton pattern 여러 디자인 패턴 종류 중 하나로, 하나의 클래스에 오직 하나의 객체 인스턴스만 가지는 패턴이다. * 디자인 패턴: 프로그램을 설계할때 발생했던 문제점들을 객

cheershennah.tistory.com

 

https://babbab2.tistory.com/66

 

Swift) 싱글톤 패턴(Singleton Pattern)

안녕하세요 :) 소들입니다 이번 포스팅에선 싱글톤 패턴이 무엇이고, Swift에선 어떻게 사용되는지에 대해 알아보려고 해요!!! 왜 네트워크 하다가 갑자기 SingleTon이냐 하면 내 마음임 모든 포스팅

babbab2.tistory.com

 

'CS' 카테고리의 다른 글

변수, 상수명 잘 짓기  (0) 2024.03.22
메모리 구조 (코드, 데이터, 스택, 힙)  (2) 2023.12.07