싱글톤 클래스 예시
#pragma once
/*=================================
Singleton Pattern
=================================*/
/*
클래스의 인스턴스를 오직 하나만 존재하게 하고 전역 접근점을 제공하는 패턴 방법
데이터베이스 연결, 로그 기록등과 같이 리소스를 관리할 때 사용한다.
장점
ㄴ 접근성 : 싱글톤 객체는 전체에서 쉽게 접근하여 여러 클래스에서 동일한 객체를 공유한다.
ㄴ 일관성 : 여러 곳에서 동일한 객체를 사용하기 때문에 데이터가 동일하다.
ㄴ 지연 초기화 : 필요할 때만 객체를 생성하는 방법이 가능하다.
단점
ㄴ 유연성 : 싱글톤은 클래스의 객체를 고정하므로 나중에 다른 구현체로 교체하기 어렵다.
*/
#include <iostream>
class Singleton
{
public:
static Singleton& getInstance()
{
static Singleton instance;
return single;
}
void print()
{
std::cout << "싱글톤 함수 사용" << std::endl;
}
private:
// 객체 생성을 못하게 생성자를 private으로 접근 막기
Singleton() {}
~Singleton() {}
// 복사 생성자와 대입 연산자를 private으로 설정하여 복사 방지
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
};
싱글톤 사용
#include "Singleton.h"
int main()
{
Singleton::getInstance().print();
return 0;
}
결과

'Design Pattern' 카테고리의 다른 글
| State Pattern (0) | 2024.02.06 |
|---|---|
| Observer Pattern (0) | 2024.02.05 |
| Prototype Pattern (0) | 2024.02.04 |
| Builder Pattern (0) | 2024.02.03 |
| Factory Pattern (0) | 2024.02.02 |