PHP 단일 관심 디자인 패턴에는 다음이 포함됩니다. 1. 클래스가 로드될 때 인스턴스를 생성한 다음 인스턴스를 직접 반환하는 Hungry 스타일 싱글톤 모드 2. 클래스에서 인스턴스를 얻는 게으른 스타일 싱글톤 모드 첫 번째 호출 방법은 지연된 로딩을 달성하기 위해 인스턴스를 생성하는 데 사용됩니다. 3. 게으른 싱글턴 모드를 기반으로 하는 이중 확인 잠금 싱글턴 모드는 잠금을 통해 스레드 안전을 보장하고 지연된 로딩 및 스레드 안전을 달성합니다. 4. 정적 싱글턴 모드를 사용합니다. 변수는 인스턴스를 정적 변수에 저장하고 간단한 스레드 안전성을 달성하기 위해 인스턴스를 얻는 정적 메서드를 제공합니다.
이 기사의 운영 환경: Windows 10 시스템, PHP8.1.3 버전, Dell G3 컴퓨터.
PHP 싱글톤 디자인 패턴은 일반적으로 사용되는 디자인 패턴으로, 클래스에 인스턴스가 하나만 있고 전역 액세스 지점을 제공하는 데 사용됩니다.
PHP에서는 싱글톤 디자인 패턴을 구현하는 방법이 여러 가지가 있습니다.
Hungry-style 싱글톤 패턴
Hungry-China 싱글톤 패턴은 클래스가 로드될 때 인스턴스를 생성한 다음 직접 예제를 반환하는 것을 의미합니다. 이 방법의 장점은 구현이 간단하고 스레드로부터 안전하다는 점이지만, 지연 로딩을 달성할 수 없다는 단점이 있습니다.
class Singleton { private static $instance = new Singleton(); private function __construct() {} public static function getInstance() { return self::$instance; } }
Lazy Singleton Pattern
Lazy Singleton Pattern은 인스턴스를 얻기 위한 메서드가 처음 호출될 때만 인스턴스가 생성된다는 의미입니다. 이 접근 방식의 장점은 지연 로딩을 구현할 수 있다는 점이지만, 멀티 스레드 환경에서 스레드 안전성 문제가 발생할 수 있다는 단점이 있습니다.
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } }
이중 확인 잠금 싱글턴 모드
이중 확인 잠금 싱글턴 모드는 게으른 싱글턴 모드를 기반으로 하며 잠금을 통해 스레드 안전성을 보장합니다. 이 접근 방식의 장점은 지연 로딩과 스레드 안전성을 달성한다는 점이지만, 단점은 코드 복잡성을 증가시킨다는 것입니다.
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance == null) { synchronized(self::class) { if (self::$instance == null) { self::$instance = new Singleton(); } } } return self::$instance; } }
정적 변수를 사용하는 싱글톤 패턴
정적 변수를 사용하는 싱글턴 패턴은 인스턴스를 정적 변수에 저장하고 인스턴스를 가져오는 정적 메서드를 제공한다는 의미입니다. 이 방법의 장점은 구현이 간단하고 스레드로부터 안전하다는 점이지만, 지연 로딩을 달성할 수 없다는 단점이 있습니다.
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } }
위는 몇 가지 일반적인 PHP 싱글톤 디자인 패턴의 구현 방법입니다. 특정 요구 사항과 시나리오에 따라 싱글톤을 구현하는 적절한 방법을 선택할 수 있습니다.
위 내용은 PHP의 단순 관심 디자인 패턴은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!