싱글톤 클래스의 단점 및 오버헤드는?

조회수 2084회

안녕하세요. C++, DirectX로 게임 개발하고있는 초보 개발자입니다.

저의 질문은 게임 뿐만아니라 소프트웨어 개발시에 여러가지 디자인 패턴이 적용되는데 그 중 Singleton은 전역변수 대신하여 어느 소스파일에서나 쉽게 접근하는 장점이 있는데 편하게 사용하는 만큼 단점은 별로 없는 것 같아요.

제가 아는 단점이라함은 인스턴스가 하나만 존재할 때 사용하여야 하는 정도. 제가 실제 게임에 적용하는 부분은 SceneManager나 BulletManager 등(이 외에도 여러 곳에서 사용 중입니다.)으로 주로 'Manager'라고 불리오는 객체? 로 사용하고 있습니다. 이는 하나의 인스턴스로 사용하기만 한다면 아무런 문제가 없는 것 같습니다.

어느 소스파일에서나 exturn 없이 GetInstance를 매크로로 정의하여 쉽게 접근하여 사용하는데 이때 발생하는 오버헤드는 클래스 멤버변수로 존재하는 것보다는 상식적으로 더 크다고는 생각합니다. 하지만 그 오버헤드가 미미할정도로 작다면 계속 사용할 예정인데 게임의 생명은 FPS다보니 이것 조차 무시할 수 없을 것 같네요.

무튼 결론은 싱글톤 패턴으로 사용하는 것의 단점이 뭐가있을까요? 또 이때 발생하는 오버헤드는 신경쓸만큼 존재하나요? 게임 개발 및 소프트웨어 개발시 싱글톤이 많이 사용되는지?

2 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.