개발블로그
싱글턴패턴(Singleton Pattern) 본문
싱글턴 패턴은 오직 한 개의 클래스 인스턴스만 갖도록 보장하고, 그 인스턴스를 전역에서 접근할 수 있는 메서드를 제공한다.
즉, 클래스 오브젝트를 단 하나만 생성해서 여러 오브젝트가 접근할 수 있도록 하는 매니저 스크립트에 많이 사용한다.
c++과 c#으로 각각 싱글턴 패턴 예제 코드를 작성했다.
// c++
class FileSystem
{
public:
static FileSystem& instance()
{
if(_instance == NULL)
{
_instance = new FileSystem();
}
return *_instance;
private:
FileSystem() {}
static FileSystem* _instance;
};
}
_instance 정적 멤버변수는 클래스 인스턴스를 저장한다. 생성자가 private 이므로 밖에서는 생성할 수 없다.
public에 있는 instance() 정적 메서드는 코드 어디서나 싱글턴 인스턴스에 접근할 수 있게 하고,
싱글턴을 실제로 필요로 할 때 까지 인스턴스 초기화를 미루는 역할도 한다.
// c++
class FileSystem
{
public:
static FileSystem& instance()
{
static FileSystem *instance = new FileSystem();
return *instance;
}
private:
FileSystem() {}
};
이렇게도 사용한다.
// c#
private static FileSystem _instance = null;
public static FileSystem Instance
{
get
{
if(_instance == null)
{
_instance = new FileSystem();
}
}
}
c#에서도 마찬가지로 private 정적 멤버변수를 선언한 후
/// 수정중 .....
* 공부하는 단계입니다. 잘못된 부분이 있다면 피드백 부탁드립니다.😊