싱글톤 패턴에 대해 알아봄
싱글톤 패턴이란?
객체를 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
https://babbab2.tistory.com/66
'CS' 카테고리의 다른 글
변수, 상수명 잘 짓기 (0) | 2024.03.22 |
---|---|
메모리 구조 (코드, 데이터, 스택, 힙) (2) | 2023.12.07 |