【요약】
클래스에 인스턴스가 하나만 있는지 확인하고 해당 클래스에 액세스할 수 있는 전역 액세스 포인트를 제공하세요. [GOF95]
【특징】
1. 클래스에는 인스턴스가 하나만 있습니다
2. 이 인스턴스를 스스로 생성해야 합니다
3. 이 인스턴스를 전체 시스템에 직접 제공해야 합니다
【구조도】
【주인공】
Singleton은 클라이언트가 유일한 인스턴스에 액세스할 수 있도록 허용하는 인스턴스 작업을 정의합니다. 인스턴스는 클래스 메소드입니다. 유일한 인스턴스 생성을 담당합니다.
【장점과 단점】
1. 고유한 인스턴스에 대한 액세스 제어
2. 네임스페이스를 줄입니다. 싱글톤 모드는 전역 변수를 개선한 것입니다. 고유한 인스턴스를 저장하는 전역 변수로 네임스페이스를 오염시키는 것을 방지합니다
3. 싱글톤 클래스는 하위 클래스를 가질 수 있으며 작동 및 표현의 본질을 허용합니다. 그리고 이 확장 클래스의 인스턴스를 사용하여 애플리케이션을 구성하는 것은 매우 쉽습니다. 필요한 클래스의 인스턴스를 사용하여 런타임에 애플리케이션을 구성할 수 있습니다.
4. 가변 개수의 인스턴스 허용(다중 인스턴스 모드)
5. 수업 운영보다 유연함
【적용분야】
1. 클래스가 하나의 인스턴스만 가질 수 있고 클라이언트가 잘 알려진 액세스 포인트에서 액세스할 수 있는 경우
2. 이 인스턴스만 서브클래싱을 통해 확장 가능해야 하는 경우. 그리고 사용자는 코드를 변경하지 않고도 확장된 인스턴스를 사용할 수 있어야 합니다.
[싱글톤 모드 PHP 인스턴스]
$s = 싱글톤::getInstance();
echo $s->info();
?>