- 순서
- 싱글톤패턴이란?
- 싱글톤패턴의 사용예
- 싱글톤패턴의 장점과 단점
- 싱글톤패턴 사용시 고려사항
- 간단한 싱글톤패턴작성
- 싱글톤패턴이란?
- Singleton패턴은 class의 instance가 단 하나만 존재하도록 보장하고, 전역적으로 접근할 수 있는 지점을 제공하는 디자인 패턴임.
- 싱글톤패턴의 사용예
- DB
- 게임내부의 Manager
- Player(싱글 게임이라면)
- 싱글톤패턴의 장점과 단점
- 장점
- 전역 접근: 어디서든 같은 인스턴스에 접근 가능
- 메모리 절약: 하나의 인스턴스만 생성되므로 메모리 관리에 효율적
- 데이터 일관성: 전역 상태를 하나의 객체로 관리
- 단점
- 테스트 어려움: 전역상태로 인해 단위 테스트가 복잡함
- 결합도 증가: 여러 클래스가 Singleton에 의존하게됨
- 멀티스레딩 문제: 스레드 안정성을 고려해야함
- 확장성 문제: 나중에 여러 인스턴스가 필요할 때 구조 변경이 어려울 수 있음
- 싱글톤패턴 사용시 고려사항
- 정말 하나만 필요한가? - 미래의 요구사항 변경 가능성 고려
- 스레드 안정성 - 멀티스레딩 환경에서 안전한 구현 필요
- 의존성 주입 - Singleton 대신 의존성 주입 패턴 고려
- 생명주기 관리 - 소멸 시점과 리소스 해제 고려
- 간단한 싱글톤패턴 작성
(.h)
class Character
{
private:
static Character* instance;
public:
static Character* Get();
}
(.cpp)
Character* Character::instance = nullptr;
Character* Character::Get()
{
//만약 instance가 생성되지 않았다면
if (instance == nullptr)
{
instance = new Character(); //캐릭터 생성해주기
}
return instance;
}