Maison  >  Article  >  développement back-end  >  Que signifie le mode singleton php ?

Que signifie le mode singleton php ?

Guanhui
Guanhuioriginal
2020-05-07 17:16:492470parcourir

Que signifie le mode singleton php ?

Que signifie le mode PHP singleton

Une classe a une et une seule instance, et elle est fournie à l'ensemble du programme après instanciation ? , ou cela peut être compris comme garantissant qu'il n'y a qu'une seule instance de cette classe pendant toute l'exécution du programme et en fournissant un point d'accès global qui peut y accéder.

Exemple de modèle singleton php

class Singleton {
    private static $_instance;//保存实例化出来的单例
//构造函数私有化,确保单例类不能通过其它对象 new 出来
    private final function __construct() {}
//定义私有的__clone()方法,这是确保单例类不能被复制或克隆,否则又不是单例了。
    private function __clone() {}
    public static function getInstance() {
//检测类是否被实例化,如果没有实例化,就 new 一下,已经实例化就直接返回。
        if ( ! (self::$_instance instanceof self) ) {
            self::$_instance = new test();
        }
        return self::$_instance;
    }
}

//拿到单例实例,多次调用都是同一个实例
Singleton::getInstance();

Avantages

Fourni Réaliser un contrôle. accès à une instance unique.

2. Puisqu'il n'y a qu'un seul objet dans la mémoire système, les ressources système peuvent être sauvegardées. Le mode singleton peut sans aucun doute améliorer les performances du système pour certains objets qui doivent être fréquemment créés et détruits.

Inconvénients

1. Le modèle singleton détruit les modèles de classe courants et n'a pas de couche d'abstraction, il est donc très difficile à développer.

2. Le mode singleton pollue les variables globales afin de rester unique lors de l'exécution et d'être accessible globalement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn