현재 위치: > 최신 기사 목록> PHP7 익명 클래스로 유연한 싱글 톤 패턴을 구현하기위한 모범 사례

PHP7 익명 클래스로 유연한 싱글 톤 패턴을 구현하기위한 모범 사례

M66 2025-07-08

소개

싱글 톤 패턴은 클래스에 인스턴스가 하나만 있고 글로벌 액세스 포인트를 제공하는 일반적인 설계 패턴입니다. PHP에서 전통적인 싱글 톤 모드 구현은 정적 변수 및 방법에 의존합니다. 그러나 PHP7은 익명 클래스의 새로운 기능을 도입하여 싱글 톤 모드의 구현을보다 유연하고 간결하게 만들었습니다.

전통적인 싱글 톤 모델 구현

PHP7 이전에, 싱글 톤 패턴은 일반적으로 개인 생성자 및 정적 getinstance 방법을 사용하여 구현되었다. 이러한 방식으로 정적 메소드는 클래스의 인스턴스가 한 번만 생성되도록합니다. 예를 들어:

 class Singleton {
     private static $instance;
     private function __construct() {}
     public static function getInstance() {
         if (self::$instance === null) {
             self::$instance = new self();
         }
         return self::$instance;
     }
 }

PHP7 익명 클래스는 싱글 톤 모드를 구현합니다

PHP7에서 소개 한 익명 클래스 기능을 사용하면 클래스를 명명하지 않고도 생성 할 수 있습니다. 이 기능을 사용하면 싱글 톤 모드를 쉽게 구현할 수 있습니다. 익명 클래스를 사용하면 인스턴스를 생성 할뿐만 아니라 인스턴스화 할 때 더 많은 초기화 작업을 수행 할 수 있습니다.

 $instance = new class {
     private function __construct() {}
     public function getInstance() {
         return $this;
     }
 };

익명 클래스로 싱글 톤 패턴의 유연성을 향상시킵니다

익명 클래스를 사용하면 인스턴스 객체를 반환하는 대신 인스턴스화 할 때 더 많은 사용자 정의 로직 및 초기화 작업을 추가 할 수 있습니다. 예를 들어, 다음 코드는 익명 클래스를 통과하는 싱글 톤 패턴을 구현하는 방법을 보여줍니다.

 interface Logger {
     public function log($message);
 }
 class FileLogger implements Logger {
     public function log($message) {
         // 이것은 파일에 로그를 쓰는 논리를 구현합니다
     }
 }
 $instance = new class extends FileLogger {
     private function __construct() {}
     public function getInstance() {
         return $this;
     }
 };
 $instance->log('This is a log message.');

요약

PHP7의 익명 클래스를 통해보다 유연하고 확장 가능한 싱글 톤 패턴을 구현할 수 있습니다. 익명 클래스는 코드를 단순화 할뿐만 아니라 초기화 작업, 인터페이스 구현 및 클래스 상속과 같은 더 많은 사용자 정의 기능을 제공합니다. 이러한 장점으로 인해 PHP 코드는 더 간결하고 유지하기 쉬운 동시에 코드의 재사용 성과 가독성을 향상시킵니다.