PHP5의 싱글턴 디자인 패턴
PHP5에서 싱글턴 디자인 패턴을 구현하려면 방법에 관계없이 하나의 인스턴스만 가질 수 있는 클래스를 생성해야 합니다. 여러 번 인스턴스화되었습니다. 이는 정적 변수를 사용하여 단일 인스턴스를 저장하고 복제 또는 역직렬화를 방지함으로써 달성됩니다.
다음은 PHP5에서 싱글톤 클래스를 생성하는 방법에 대한 예입니다.
final class UserFactory { private static $inst = null; // Prevent cloning and de-serializing private function __clone(){} private function __wakeup(){} /** * Call this method to get singleton * * @return UserFactory */ public static function Instance() { if self::$inst === null) { self::$inst = new UserFactory(); } return self::$inst; } /** * Private ctor so nobody else can instantiate it * */ private function __construct() { } }
이것은 구현에서는 정적 변수 $inst를 사용하여 UserFactory 클래스의 단일 인스턴스를 저장합니다. Instance() 메서드는 싱글톤 getter 역할을 합니다. $inst가 null이면 새 인스턴스가 생성되어 $inst에 할당됩니다.
이 싱글톤 클래스를 사용하려면 Instance() 메서드를 호출하여 단일 인스턴스를 얻으세요.
$fact = UserFactory::Instance(); $fact2 = UserFactory::Instance();
$fact와 $fact2를 비교하면 true가 반환되어 동일한 인스턴스임을 확인할 수 있습니다.
그러나 새 인스턴스를 인스턴스화하려고 하면 new UserFactory()를 직접 사용하는 UserFactory 객체는 생성자가 비공개로 설정되므로 오류가 발생합니다. UserFactory 클래스의 인스턴스를 얻는 유일한 방법은 Instance() 메서드를 사용하는 것입니다.
위 내용은 PHP5에서 싱글톤 디자인 패턴을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!