PHP 싱글톤 모드(책임 모드)

高洛峰
풀어 주다: 2023-03-05 15:56:02
원래의
1353명이 탐색했습니다.

간단히 말하면 객체(디자인 패턴을 배우기 전에 객체 지향적 사고를 이해해야 함)는 특정 작업만 담당합니다.

단일 인스턴스 클래스:

1. 비공개로 표시해야 합니다(액세스 제어: 외부 코드가 new 연산자를 사용하여 객체를 생성하는 것을 방지함). 싱글톤 클래스는 다른 클래스에서 인스턴스화할 수 없으며 자체적으로만 인스턴스화할 수 있습니다. 저장된 클래스 인스턴스의 정적 멤버 변수

가 있습니다. 3. 이 인스턴스에 액세스하기 위한 공용 정적 메서드가 있습니다(getInstance() 메서드는 일반적으로 싱글톤 클래스를 인스턴스화하는 데 사용되며, instanceof 연산자를 사용하여 클래스가 인스턴스화되었는지 감지) )

또한 객체가 복사(복제)되는 것을 방지하려면 __clone() 메서드를 생성해야 합니다.

<?php
/**
 * Created by PhpStorm.
 * User:
 * Date: 2017/1/2
 * Time: 下午3:32
 */

class Single {
    //保存实例的私有静态实例变量
    private static $instance;

    //private标记的构造方法,方式通过其他方式实例化
    private function __construct() {
        echo "this is construct function";
    }

    //创建clone方法防止被克隆
    public function __clone() {
        trigger_error("Clone is not allowed ", E_USER_ERROR);
    }

    //单例方法,用户访问实例的公共静态方法
    public static function shareInstance() {
        //instanceof:判断instance是不是self的实例或者子类
        if (!(self::$instance instanceof self)){
            self::$instance = new self();
        }
        return self::$instance;
    }
}
로그인 후 복사
로그인 후 복사

첨부됨

사용자 수준 오류 메시지를 생성하는 함수입니다.

trigger_error()

함수는 내장된 오류 처리기와 연결되거나 사용자 정의 함수를 새로운 오류 처리기(set_error_handler())로 사용할 수 있습니다.

trigger_error(errormsg,errortype);
로그인 후 복사
로그인 후 복사
trigger_error()
参数 描述
errormsg 必需。规定错误消息。最大长度 1024 字节。
errortype 可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认)


간단히 말하면 객체(디자인 패턴을 배우기 전에 객체 지향적 사고를 이해해야 함)는 특정 작업만 담당합니다.

싱글톤 클래스:

1. 생성자는 비공개로 표시되어야 합니다(액세스 제어: 외부 코드가 new 연산자를 사용하여 객체를 생성하는 것을 방지). 싱글톤 클래스는 다른 클래스에서 인스턴스화할 수 없으며 인스턴스화만 가능합니다.

2. 클래스의 인스턴스를 저장하는 정적 멤버 변수가 있습니다.

3. 이 인스턴스에 액세스하는 공용 정적 메서드가 있습니다. ) 메소드는 인스턴스화에 일반적으로 사용됩니다. 인스턴스화를 위해 인스턴스화 연산자를 사용하여 클래스가 인스턴스화되었는지 확인할 수 있습니다.)

또한 객체가 인스턴스화되는 것을 방지하려면 __clone() 메소드를 생성해야 합니다. 복사됨(복제됨)

<?php
/**
 * Created by PhpStorm.
 * User:
 * Date: 2017/1/2
 * Time: 下午3:32
 */

class Single {
    //保存实例的私有静态实例变量
    private static $instance;

    //private标记的构造方法,方式通过其他方式实例化
    private function __construct() {
        echo "this is construct function";
    }

    //创建clone方法防止被克隆
    public function __clone() {
        trigger_error("Clone is not allowed ", E_USER_ERROR);
    }

    //单例方法,用户访问实例的公共静态方法
    public static function shareInstance() {
        //instanceof:判断instance是不是self的实例或者子类
        if (!(self::$instance instanceof self)){
            self::$instance = new self();
        }
        return self::$instance;
    }
}
로그인 후 복사
로그인 후 복사

첨부

함수는 사용자 수준 오류 메시지를 생성합니다.

trigger_error()

함수는 내장된 오류 처리기와 연결되거나 사용자 정의 함수를 새로운 오류 처리기(set_error_handler())로 사용할 수 있습니다.

trigger_error(errormsg,errortype);
로그인 후 복사
로그인 후 복사
trigger_error()
参数 描述
errormsg 必需。规定错误消息。最大长度 1024 字节。
errortype 可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认)

PHP의 싱글톤 모드(책임 모드)에 대한 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!