박오이님
무미건조한 개발자
박오이님
전체 방문자
오늘
어제
  • 뭥미 (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)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

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

무미건조한 개발자

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

Study - 싱글턴 패턴, Singleton Pattern

2024. 3. 27. 19:41

싱글턴 패턴, Singleton Pattern

싱글턴 패턴은 소프트웨어 디자인 패턴의 하나로, 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 패턴입니다. 이는 전역 변수를 사용하지 않고 객체에 대한 전역 접근을 제공하려는 경우에 유용합니다.

예제 코드

#include <iostream>

class Singleton {
private:
    static Singleton* instance; // 싱글턴 인스턴스를 저장할 정적 멤버 변수
    Singleton() {} // 생성자는 비공개

public:
    // 복사 생성자와 대입 연산자를 삭제하거나 비공개로 만듭니다.
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

    // 싱글턴 인스턴스에 대한 전역 접근점을 제공하는 정적 메소드
    static Singleton* getInstance() {
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return instance;
    }

    void demoFunction() {
        std::cout << "싱글턴 패턴의 함수 작동 예시" << std::endl;
    }
};

// 정적 멤버 변수 초기화
Singleton* Singleton::instance = nullptr;

int main() {
    // 싱글턴 인스턴스에 접근
    Singleton* singleton = Singleton::getInstance();
    singleton->demoFunction();

    return 0;
}

구현 시, 중점 사항

1. 싱글턴 클래스 정의: 싱글턴 클래스는 자신의 유일한 인스턴스를 저장할 정적 멤버 변수, 외부에서 인스턴스에 접근하기 위한 정적 메소드, 그리고 복사 생성자와 대입 연산자를 삭제하거나 비공개로 만듦으로써 외부에서 객체를 복제하거나 대입할 수 없게 합니다.

2. 정적 메소드 제공: 이 메소드는 싱글턴 인스턴스에 대한 전역 접근점 역할을 합니다. 일반적으로 이 메소드는 인스턴스가 아직 생성되지 않았다면 생성하고, 이미 있다면 이를 반환합니다.

언제 사용하면 좋을까?

싱글턴 패턴은 리소스 관리, 로깅, 드라이버 객체, 하드웨어 인터페이스 접근 등 다양한 상황에서 유용하게 사용될 수 있습니다.

유의할 것

싱글턴 패턴의 사용은 프로그램의 테스트를 어렵게 하고, 전역 상태를 증가시키므로 신중하게 고려하여 사용해야 합니다.

저작자표시 (새창열림)

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

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

    티스토리툴바