Cyn.thi.s
Cyn.thi.s Programming
Cyn.thi.s
전체 방문자
오늘
어제
  • 분류 전체보기
    • Programming
      • Visual Studio
      • Data Structure & Algorithm
      • C, C++
      • C#
      • Direct X
      • Unity Engine
      • Unreal Engine
      • Game-Math
    • Project
      • Direct X
      • Unity
      • Unreal
    • Life

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SoftRenderer
  • 3차원 회전 행렬 구하기 #오일러 회전 #짐벌락 현상
  • 코옵
  • Class Naming Change
  • Precompiled Header #C++ #C
  • Ue4 Camera Shake
  • 언리얼 카메라 쉐이크
  • unity
  • 벡터 내적 #
  • unreal
  • 구글플레이
  • 3d 백뷰
  • 투영 벡터
  • UE4
  • 2d 아케이드
  • Linear Transformation #Matrix #선형변환 #행렬
  • UE5
  • 언리얼 클래스 명 수정
  • 백페이스 컬링 #Back Face Culling #후면 폴리곤 제거 #은면 제거
  • NDC

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Cyn.thi.s

Cyn.thi.s Programming

Programming/Game-Math

Singleton Pattern, Lazy Initialization

2019. 11. 4. 15:44

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
    'Programming/Game-Math' 카테고리의 다른 글
    • 카메라의 뷰 좌표계와 LookAt 행렬 유도
    • 3차원 회전 행렬 구하기 by 오일러각 Input
    • 선형 변환(Linear Transformation)과 행렬(Matrix)의 관계
    • C++ PreCompiled Header
    Cyn.thi.s
    Cyn.thi.s
    Cyn.thi.s Game Programming Life

    티스토리툴바