며칠째 고민중인 문제가 있는데 딱히 답을 못 얻어서;;; 부디 고수분들 답변 좀 부탁드려요.
싱글튼 패턴이 무엇인지는 압니다.
일반적으로 어떻게 구현하는지도 압니다. 스태틱 변수 하나 잡아서 True면 생성하고, 하나라고 생성자가 생성하면, 그 변수를 false로 바꿔버린 다음에, 그 변수가 false면 더이상 생성자가 호출되지 못하게 막는다. 생성자는 프라이빝으로 보호한다.
예 뭐..... 간단하죠. 저건 완벽히 이해했습니다.
다만, 저는 이것도 싱글튼 패턴이라고 생각했습니다.
class Single{
public:
static int a;
static fun() b;
private:
static Single();
};
모든 변수, 함수에 죄다 static을 붙이는 겁니다.
저 클래스에는 스태틱이 아닌 요소가 단 하나도 없습니다.
그러면, 비록 컴파일타임에(맞나?) 올라가기는 하지만, "단 하나만 생성된다" 라는 목적은 달성합니다.
스태틱이니까요.
이게 왜 싱글튼 패턴이 아닌지 잘 모르겠습니다.
이러한 것은 싱글톤 패턴이다.. 이러한 것은 아니다.. 이게 중요한가? 저것이 싱글톤처럼 쓰이면 싱글톤인거고 아니면 아닌것이지. 프로그래밍에 정답이라는게 존재야 하겠지만, 알잖아? 답이 하나가 아니라는걸. 왜 이건 싱글톤이 아니라고 하는거지?에 얽메이지 마.
막말로 싱글톤 패턴대로 객체를 구현 안했어도, 프로그래머가 그 객체를 싱글톤처럼 사용했다면, 그건 그 프로그래머에게 있어서는 싱글톤인 것이지. 다만 싱글톤이라는 개념에 비춰 봤을때 안정적이진 않을테고 협업을 한다면 분명히 문제가 발생하겠지. 하지만 그런 문제를 발생시키지 않는다면, 싱글톤이라고 볼 수 있지 않겠어?
전멤버 정적화 방법은 초기화 더 까다롭다에요? - DCW
스태틱 플래그로 컨트롤 하는건 진짜 싱글톤이 아닌데? 어디서 그렇게 배웠음??
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.