728x90
반응형
1. 싱글턴 패턴 정의
=> 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공한다.
=> GoF의 정의
2. 유니티에서의 싱글턴 패턴
=> 같은 씬안에서의 데이터 공유
=> 서로 다른 씬들간의 데이터 공유
=> 씬에 빈객체를 생성한 후에 오직 하나의 객체만 생성되도록 만들고, DontDestoryOnLoad 메소드를 통해 씬 변경시에도 파괴되지 않는 형태로 구현한다.
3. 싱글턴 패턴의 장단점
=> 싱글턴 패턴의 객체는 일종의 전역 변수이다.
=> 장점 1. 모든 곳에서 접근이 가능하다.
=> 단점 1. 모든 곳에서 접근 가능하니, 객체의 변경 시점과 변경 주체를 알기가 쉽지 않다.
=> 단점 2. 단점 1의 주체를 알려면 호출하는 모든 코드들을 다 찾아야 알 수 있다.
=> 단점 3. 일종의 전역 변수이기 때문에 여러 클래스와 커플링이 된다.
=> 단점 4. 일종의 전역 변수이기 때문에 멀티 쓰레드 환경에서 문제가 발생할 수 있다.
=> 모든 곳에서 접근 가능하므로 race condition이 발생할 수 있다. 그걸 피하기 위해 필연적으로 싱글턴에서 mutex lock과 unlock을 반복해서 걸게 되는데, 자연히 퍼포먼스가 떨어지는 문제가 발생한다.
728x90
반응형
'프로그래밍 > 디자인 패턴' 카테고리의 다른 글
추상 팩토리 패턴 (Abstract Factory Pattern) (0) | 2020.05.31 |
---|---|
팩토리 메서드 패턴 (Factory Method Pattern) (0) | 2020.05.26 |
심플 팩토리 패턴 (Simple Factory Pattern) (0) | 2020.05.24 |
스트레티지 패턴 (Strategy Pattern) (0) | 2020.05.20 |
컴포넌트 패턴 (Component Pattern) (0) | 2020.05.17 |