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 ?

Dec 13, 2024 am 03:08 AM

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI