박오이님
무미건조한 개발자
박오이님
전체 방문자
오늘
어제
  • 뭥미 (101)
    • 프로젝트 (8)
      • 자가 보호 (3)
      • 주식 시장 분석 도구 (5)
    • 보안 (7)
      • 개론 (2)
      • 웹 (2)
      • 시스템 (2)
    • 개발 (69)
      • C++ (12)
      • Win32 (7)
      • MFC (2)
      • 자료구조 (8)
      • 알고리즘 (22)
      • 백준 (9)
      • 프로그래머스 (4)
      • LeetCode (0)
      • 개발자 면접 준비 (4)
      • OpenGL (1)
    • 서적 (13)
      • Effective C++ (9)
      • Effective Modern C++ (4)
    • 관심사 (4)
      • 재테크 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 코딩컨벤션
  • JSON
  • EffectiveC++
  • 나동빈 #알고리즘 #동빈나
  • DFS #BFS #알고리즘 #프로그래밍 #코딩테스트 #코딩 #C++ #C
  • 윈도우개발자
  • Functional
  • CPP
  • 나동빈
  • 백준 #알고리즘 #플로이드와샬 #DFS #BFS #C #C++
  • 에라토스테네스의 체 #알고리즘 #개발 #C #C++ #소수 #소수판별
  • 합집합찾기
  • C++
  • jsoncpp
  • 시스템프로그래밍
  • 개발
  • 동빈나
  • 알고리즘
  • std
  • 플로이드와샬알고리즘 #최단경로 #백준 #알고리즘 #개발 #C #C++
  • 크루스칼알고리즘
  • 에라토스테네스의 체 #C #C++ #개발 #알고리즘 #BFS #DFS #백준 #백준알고리즘
  • 프로세스메모리
  • C
  • 최소간선비용
  • vcpkg
  • 윈도우시스템프로그래밍
  • 안경잡이개발자
  • 윈도우
  • 윈도우프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
박오이님

무미건조한 개발자

프로젝트/주식 시장 분석 도구

Study - Singleton Pattern 2

2024. 3. 27. 22:19

싱글턴 패턴에서 자기 자신을 포인터로 가지도록 구현하는 방법도 있고, 일반 변수로 사용하는 경우가 있던데 어떤 차이가 있을까? 궁금했다.

포인터를 사용하는 경우

  1. 지연 초기화(Lazy Initialization) 가능: 포인터를 사용하면 객체의 인스턴스가 실제로 필요할 때까지 생성을 지연시킬 수 있습니다. 즉, getInstance() 메소드가 처음 호출될 때 싱글턴 객체를 생성합니다. 이는 자원을 효율적으로 사용하게 하며, 초기 시작 시간을 단축시킬 수 있습니다.
  2. 명시적인 생성자 호출: 포인터를 사용하면 객체의 생성자를 명시적으로 호출할 수 있어, 생성 과정에서 추가 로직을 수행할 수 있습니다.
  3. 생명 주기 관리 용이: 프로그램의 어느 시점에서든 객체를 명시적으로 삭제하거나 재생성하는 등 생명 주기를 관리하기가 용이합니다.

일반 변수로 사용하는 경우

  1. 자동 초기화: 프로그램 시작 시 정적 변수의 생성자가 자동으로 호출되므로, 객체가 프로그램 시작과 동시에 초기화됩니다. 이는 지연 초기화를 할 수 없게 만듭니다.
  2. 소멸자 호출의 자동화: 일반 정적 변수의 경우, 프로그램 종료 시 자동으로 소멸자가 호출됩니다. 이는 소멸 과정을 제어하기 어렵게 만들 수 있습니다.

결론

싱글턴 패턴에서 자기 자신을 포인터로 가지는 방식은 객체의 생성과 소멸 시점을 프로그래머가 더 잘 제어할 수 있게 해줍니다. 지연 초기화를 가능하게 하여 필요할 때 객체를 생성하고, 필요에 따라 객체의 생명 주기를 관리할 수 있는 유연성을 제공합니다. 반면, 일반 변수로 싱글턴 인스턴스를 관리할 경우 이러한 유연성이 제한됩니다. 따라서 싱글턴 패턴의 사용 목적과 요구 사항에 맞게 적절한 방식을 선택해야 합니다.

저작자표시 (새창열림)

'프로젝트 > 주식 시장 분석 도구' 카테고리의 다른 글

study - vcpkg  (0) 2024.03.27
Study - 싱글턴 패턴, Singleton Pattern  (0) 2024.03.27
설계 - 데이터 수집 모듈  (0) 2024.03.24
요구 사항 분석 및 개발 모듈  (0) 2024.03.24
    '프로젝트/주식 시장 분석 도구' 카테고리의 다른 글
    • study - vcpkg
    • Study - 싱글턴 패턴, Singleton Pattern
    • 설계 - 데이터 수집 모듈
    • 요구 사항 분석 및 개발 모듈
    박오이님
    박오이님
    긍정도 아니고 부정도 아닌 0

    티스토리툴바