Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Singleton-Modus (Verantwortungsmodus)

PHP-Singleton-Modus (Verantwortungsmodus)

高洛峰
高洛峰Original
2017-02-09 10:15:271398Durchsuche

Einfach ausgedrückt ist ein Objekt (bevor Sie Designmuster lernen müssen) nur für eine bestimmte Aufgabe verantwortlich

Einzelne Instanzklasse:

1 Es muss als privat markiert werden (Zugriffskontrolle: um zu verhindern, dass externer Code den neuen Operator zum Erstellen von Objekten verwendet). Die Singleton-Klasse kann nicht in anderen Klassen instanziiert werden und kann nur von ihr selbst instanziiert werden. Verfügen Sie über eine gespeicherte Klasse. Statische Mitgliedsvariablen der Instanz

3. Verfügen Sie über eine öffentliche statische Methode, um auf diese Instanz zuzugreifen (die Methode getInstance() wird üblicherweise zum Instanziieren einer Singleton-Klasse verwendet, und der Operator „instanceof“ kann dazu verwendet werden Ermitteln Sie, ob die Klasse instanziiert wurde) )

Außerdem muss die Methode __clone() erstellt werden, um zu verhindern, dass das Objekt kopiert (geklont) wird

<?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;
    }
}
Anhang

Funktionserstellung Fehlermeldung auf Benutzerebene. Die Funktion

trigger_error()

kann mit dem integrierten Fehlerhandler verknüpft werden oder eine benutzerdefinierte Funktion kann als neuer Fehlerhandler verwendet werden (set_error_handler()).

trigger_error()

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


Einfach ausgedrückt ist ein Objekt (Sie müssen objektorientiertes Denken verstehen, bevor Sie Designmuster lernen) nur für eine bestimmte Aufgabe verantwortlich

Singleton-Klasse:

1. Der Konstruktor muss als privat markiert werden (Zugriffskontrolle: Verhindern Sie, dass externer Code den neuen Operator zum Erstellen von Objekten verwendet. Die Singleton-Klasse kann nicht nur in anderen Klassen instanziiert werden Von selbst instanziiert;

2. Eine statische Mitgliedsvariable haben, die eine Instanz der Klasse enthält

3. Eine öffentliche statische Methode für den Zugriff auf diese Instanz haben (üblicherweise wird die Methode getInstance() verwendet). (Beispiel: Singleton-Klasse, Sie können erkennen, ob die Klasse durch den Instanzenoperator instanziiert wurde)

Darüber hinaus müssen Sie eine __clone()-Methode erstellen, um zu verhindern, dass das Objekt kopiert (geklont) wird

<?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;
    }
}
Angehängte

-Funktion erstellt Fehlermeldungen auf Benutzerebene. Die Funktion

trigger_error()

kann mit dem integrierten Fehlerhandler verknüpft werden oder eine benutzerdefinierte Funktion kann als neuer Fehlerhandler verwendet werden (set_error_handler()).

trigger_error()

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

Weitere Artikel zum Singleton-Modus (Verantwortungsmodus) von PHP finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-unlink()-FunktionNächster Artikel:PHP-unlink()-Funktion