Singleton 패턴

[네이버 지식백과]singleton 패턴 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 한빛아카데미(주))


프로그램 전체적으로 한개의 자원을 사용하는 경우 적용할 수 있는 Singleton. 예를 들면 GPS, G sensor, 온도센서와 같은 모듈은 보통 한개의 제품에 한개씩 들어있습니다. 각각의 모듈을 초기화하고 사용하는 C Class를 만든다면 다음과 같이 Singleton을 활용할 수 있습니다.


#define null (void *)0

typedef struct
{
    InitFunction init;
    OpenFunction open;
    ConnetFunction connection;
    //... (필요시 추가)
}Device;


Device *getGpsInstance()
{
  static Device *instance = null;

  if(&instance == null)
  {
    instance = malloc(sizeof(*instance));
    instance->init = GpsInitFunction;
    instance->open = GpsOpenFunction;
    instance->connetion = GpsConnection;
  }
  return instance;
}



패턴은 코딩의 일관성을 유지해 줍니다. OPEN, CLOSE, INIT, CONNECT, READ, WRITE등으로 사용하면 일치하는 Device 들이 많이 있습니다. 따라서 위와 같은 Device Struct를 만들어 주면 코드가 일관성있게 보여 다른 사람이라든가 오랜만에 코드를 볼 때 한눈에 들어오게 코딩을 할 수 있게 됩니다. 또한 Device가 바뀌어도 함수 명은 바뀌지 않기 때문에 어플리케이션 단에서 수정을 최소화 할 수 있게 됩니다. 







'▶ 이전글 > C Pattern' 카테고리의 다른 글

Iterator 패턴 - Queue  (0) 2015.01.20
C로 만드는 Interface  (0) 2014.10.15
Template method 패턴  (0) 2014.10.02
Strategy 패턴  (0) 2014.10.02
Observer 패턴  (0) 2014.10.02