Singleton Pattern?
싱글톤을 사용할 클래스를 통해 최초 한번만 메모리를 할당하고,
단 하나의 인스턴스만을 갖도록해 이에 대한 전역적인 접근점을 제공하는
디자인 패턴
왜 사용할까?
1. 싱글톤으로 만들어진 인스턴스는 전역 인스턴스이기에 타 클래스에서 사용이 편하기 때문
2. 공통된 객체를 여러개 생성해서 사용해야하는 경우에 싱글톤을 사용하면 좋다.
3. 인스턴스가 절대적으로 한개만 존재하길 바랄때 사용.
4. 고정된 메모리 영역을 가지게 되어 메모리를 낭비하지 않음.
문제점?
1. 현업에서의 goto를 쓰면 안된다! 라는 것처럼 싱글톤도 비슷한 문제점이 있다.
싱글톤의 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유할 경우
타 클래스의 인스턴스들간에 결합도가 높아져 객체 지향 설계 원칙(개방 폐쇄의 원칙) 에 어긋난다.
2. 전역으로 처음부터 메모리를 잡게 되기에 많은 싱글톤은 많은 메모리를 처음부터 잡고 시작하게된다.
Lazy initialization?
Eager Initialization의 인스턴스를 사용하지 않더라도 인스턴스는 항상 생성된다는 단점을 보완한 방법이다.
그를 통해 원하는 시점에 초기화를 할 수 있다.
'Programming > Game-Math' 카테고리의 다른 글
벡터 내적 공식 유도 (0) | 2019.12.18 |
---|---|
카메라의 뷰 좌표계와 LookAt 행렬 유도 (0) | 2019.12.18 |
3차원 회전 행렬 구하기 by 오일러각 Input (1) | 2019.12.18 |
선형 변환(Linear Transformation)과 행렬(Matrix)의 관계 (0) | 2019.12.08 |
C++ PreCompiled Header (0) | 2019.11.25 |