[swift] 싱글턴

chosh·2023년 5월 13일
0

싱글턴이란?

싱글턴은 객체 지향 프로그래밍에서 사용되는 디자인 패턴입니다.
클래스의 인스턴스가 하나만 생성되도록 하는 것으로, 여러개를 생성할 수 없도록 합니다.

final class Singleton {
	static let shared = Singleton()
    private init () {}
    
    public func doSomething() {
    	print("매서드 호출")
    }
}
  • 타입 속성으로 변수를 하나 선언하고, 그 변수에 인스턴스를 담는다
    • 타입 속성으로 선언하게 되면 처음 lazy 속성과 비슷하게 접근하면 메모리에 할당됨
  • 이니셜라이저를 private로 선언하여 접근할 수 없도록 한다
    • 여러개의 인스턴스가 생성될 수 없도록

사용 방법

let singleton = Singleton.shared
singleton.doSomgthing()
  • let singleton = Singleton.shared 를 처음 만났을때 메모리에 올라감
  • 인스턴스를 생성해서 인스턴스의 shared 에 접근하는게 아님(인스턴스 생성 불가능하게 막아놓음)
  • 타입속성으로 지정을 했기 때문에 클래스의 shared로 접근이 가능
  • 하나의 인스턴스가 shared에 생성되고 그 다음에 접근할 때는 이미 생성된거 반환해줌
  • 그 안에 있는 매서드 사용
profile
제가 참고하기 위해 만든 블로그라 글을 편하게 작성했습니다. 틀린거 있다면 댓글 부탁드립니다.

0개의 댓글