귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
시리즈 강좌 시리즈 강좌 입니다.
글내용 - 시리즈 강좌
 델파이 디자인패턴 강좌 - 싱글톤(Singletone) 패턴
챨리브라운
(권광일)
2019-03-09 오후 2:21:07
365회 조회


첨부파일 다운로드
Singleton.zip
이번 강의는 싱글톤(Singletone) 패턴입니다.

Singletone 은 single + tone 의 복합어 입니다.

즉, 하나 + 논조 [ 論調 ] 

논조 : 논하는 말이나 글의 투. 

위 말을 디자인패턴의 형식에서 풀어 보면 프로그램 전체에서 

"오직 하나의 인스턴스 가 존재하여야 한다는 원칙" 입니다.

이런 원칙을 세워서 프로그램을 개발해야 하는 이유는 원칙을 위배하게 되면

프로그램이 뒤죽박죽이 될 수 있기 때문입니다.


프로그램 개발에 있어 싱글톤으로 생성해야 하는 클래스 인스턴스가 여러가지가 존재하겠지만

가장 기본이되고 필수적인 클래스가 바로 어플리케이션의 설정값을 들고 있는 프로그램 설정값 클래스입니다.

특수한 경우가 아니라면 설정값은 프로그램 전체에서 하나이면 족한 경우가 많은데,

이때 싱글톤 패턴으로 설정값을 보관하는 클래스를 생성하게 됩니다.


싱글톤 패턴의 핵심은 특정 클래스에 대해 하나 이상의 인스턴스를 생성하지 못하게 하는 역활입니다.

그러기 위해서는 클래스의 생성자에 다음과 같은 적절한 조치를 필수적으로 해 주어야 합니다.

constructor TAppConfig.Create;
begin
  if gAppConf <> nil then begin
    ShowMessage('이 객체는 싱글톤으로 쓰여지고 있으므로 다중생성할 수 없습니다.');
    Abort;
  end else begin
    inherited Create;
    gAppConf := Self;
  end;
end;


이 것이 싱글톤 패턴의 핵심입니다. 아주 간단하죠?


예제는 첨부파일에 해 두었습니다.

참고로, 예제는 전역변수들을 저장하는 클래스가 따로 있으며, 다른 클래스들은 이 클래스의 

인스턴스를 통해 전역변수에 접근하는 방법을 사용합니다. 다른 분들의 생각은 어떤지 잘 모르겠지만,

본인은 이 방법이 정석이라 여기고 있습니다.


이상 싱글톤 패턴이었습니다.