티스토리 뷰

Tech

디자인패턴1) 싱글톤 패턴

Ellie Kim 2019. 3. 15. 20:15

1) 디자인 패턴 - Singleton


Singleton클래스는 클래스의 인스턴스를 가진 shared라는 정적 상수를 생성했습니다.

static으로 선언했기 때문에 클래스를 인스턴스화 하지 않아도 호출 할 수 있습니다.

- 싱글톤 패턴을 사용하면 오직 하나의 인스턴스만 존재하게 됩니다. 

싱글톤 클래스에 name변수 생성하고 "Ellie"로 초기화 했습니다.

init초기화 부분은 private으로 설정해 다른 곳에서 인스턴스를 생성하지 못하도록 했습니다.

왜냐하면 위에서 "싱글톤 패턴을 사용하면 오직 하나의 인스턴스만 존재하게 됩니다."라고 했으니 여러곳에서 인스턴스를 생성하면 그건 싱글톤 패턴이랑은 거리가 멀겠죠.

a.name과 b.name을 출력하면 name에는 Ellie가 들어있습니다.

Singleton(b)인스턴스의 name프로퍼티를 kim으로 변경했습니다.

a.name과 b.nam을 출력하면 name에는 kim이 들어있습니다.

이와 같이 모두 동일한 인스턴스를 가르키고 있다는것을 확인할 수 있습니다.

즉 인스턴스가 오직 하나만 존재하도록 하여 값을 공유하는것이 싱글톤 패턴입니다.


장점으로는 언제 어디서든 접근 가능합니다.

또한 싱글톤 인스턴스는 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽습니다.

하지만 언제 어디서든 접근 가능하기 때문에 멀티스레드 환경에서 문제가 생깁니다.


'Tech' 카테고리의 다른 글

Xcode 퀵헬프 사용하기  (0) 2020.09.07
디자인 패턴  (0) 2019.03.15
Git 용어 정리  (0) 2019.03.09
인코딩과 디코딩  (0) 2019.02.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함