갓똥
나는야 프로그래머
갓똥
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 프로그래밍 (146)
      • 자바 (9)
      • 안드로이드 (2)
      • 유니티 (20)
      • C++ (38)
      • C# (56)
      • HTML (2)
      • 파이썬 (3)
      • 자료구조 (2)
      • 알고리즘 (0)
      • 문제풀이 (4)
      • 디자인 패턴 (7)
      • 카카오톡 봇 (1)
      • 엑셀 (1)
      • 기타 (1)
    • 게임 (21)
      • 테일즈위버 (0)
      • 카이로소프트 (1)
      • 순위 (19)
      • 기타 (1)
    • 일상 (13)
      • 카페 (1)
      • 방탈출 (12)
    • 기타 (6)
      • 웃긴자료 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • Unity Graph
  • c# delegate
  • pc게임 순위
  • 모바일 게임 순위
  • C++ virtual
  • 글로벌게임매출
  • 유니티 그래프 그리기
  • 롤 골드그래프
  • c# Thread
  • C++
  • 알고리즘
  • 유니티 그래프
  • 2020년 게임 매출
  • C++ 상속
  • 전세계게임매출순위
  • 전세계 게임 매출
  • 유니티 골드그래프
  • c# collection
  • C# 예외 처리
  • c# 코루틴
  • c# coroutine
  • pc 게임 순위
  • C++ 소멸자
  • c# unboxing
  • 자바
  • 게임 디자인 패턴
  • C# boxing
  • 게임 매출 순위
  • 게임매출순위
  • 강남 방탈출

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갓똥

나는야 프로그래머

프로그래밍/디자인 패턴

싱글턴 패턴 (Singleton Pattern)

2020. 5. 19. 00:27
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
    '프로그래밍/디자인 패턴' 카테고리의 다른 글
    • 팩토리 메서드 패턴 (Factory Method Pattern)
    • 심플 팩토리 패턴 (Simple Factory Pattern)
    • 스트레티지 패턴 (Strategy Pattern)
    • 컴포넌트 패턴 (Component Pattern)
    갓똥
    갓똥
    공부하며 알아가는 내용을 정리해 봅니다.

    티스토리툴바