Maison > développement back-end > tutoriel php > Comment implémenter le modèle de conception Singleton en PHP5 ?

Comment implémenter le modèle de conception Singleton en PHP5 ?

DDD
Libérer: 2024-12-13 03:08:08
original
622 Les gens l'ont consulté

How to Implement the Singleton Design Pattern in PHP5?

Modèle de conception Singleton en PHP5

L'implémentation du modèle de conception Singleton en PHP5 implique de créer une classe qui ne peut avoir qu'une seule instance, quelle que soit la manière dont plusieurs fois, il est instancié. Ceci est réalisé en utilisant une variable statique pour stocker l'instance unique et en empêchant le clonage ou la désérialisation.

Voici un exemple de la façon de créer une classe Singleton en 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()
    {

    }
}
Copier après la connexion

Ceci l'implémentation utilise une variable statique $inst pour stocker l'instance unique de la classe UserFactory. La méthode Instance() sert de getter singleton. Si $inst est nul, une nouvelle instance est créée et affectée à $inst.

Pour utiliser cette classe Singleton, appelez simplement la méthode Instance() pour obtenir l'instance unique :

$fact = UserFactory::Instance();
$fact2 = UserFactory::Instance();
Copier après la connexion

La comparaison de $fact et $fact2 donnera vrai, confirmant qu'il s'agit de la même instance.

Cependant, tenter d'instancier directement un nouvel objet UserFactory l'utilisation de new UserFactory() générera une erreur car le constructeur est rendu privé. La seule façon d'obtenir une instance de la classe UserFactory est d'utiliser la méthode Instance().

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal