Maison > développement back-end > tutoriel php > Scénarios d'utilisation du mode PHP singleton et méthodes d'utilisation

Scénarios d'utilisation du mode PHP singleton et méthodes d'utilisation

coldplay.xixi
Libérer: 2023-04-09 06:44:01
avant
3275 Les gens l'ont consulté

Scénarios d'utilisation du mode PHP singleton et méthodes d'utilisation

Une classe n'a qu'une seule instance d'objet

1 Signification

En tant que mode de création d'objet, le mode singleton garantit qu'une classe n'en a qu'une seule. instance. Et instanciez-le vous-même et fournissez cette instance globalement à l’ensemble du système. Il ne crée pas de copie de l'instance, mais renvoie une référence à l'instance stockée en interne dans la classe singleton.

Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

Trois points clés du mode singleton :

( 1). Une variable membre statique est nécessaire pour enregistrer la seule instance de la classe :

private static $_instance;
Copier après la connexion

(2). Le constructeur et la fonction de clonage doivent être déclarés privés pour empêcher les programmes externes de créer de nouvelles classes et ainsi de perdre la classe. signification du mode singleton. :

private function __construct(){
    $this->_db = pg_connect('xxxx');
}

private function __clone(){
}//覆盖__clone()方法,禁止克隆
Copier après la connexion

(3). Une méthode statique publique (généralement la méthode getInstance) doit être fournie pour accéder à cette instance, renvoyant ainsi une référence à l'instance unique

.
public static function getInstance(){

if(! (self::$_instance instanceof self) ){ 
    self::$_instance = new self();
}
return self::$_instance;
Copier après la connexion

Mode cas unique Assurez-vous qu'une classe n'a qu'une seule instance, s'instancie et fournit cette instance à l'ensemble du système.

Le modèle singleton est un modèle de conception courant. Dans les systèmes informatiques, les pools de threads, les caches, les objets de journal, les boîtes de dialogue, les imprimantes, les opérations de base de données et les pilotes de carte graphique sont souvent conçus comme des singletons.

Il existe trois types de modes singleton : singleton de style paresseux, singleton de style affamé et singleton de style enregistrement.

Le mode singleton présente les trois caractéristiques suivantes :

1. Il ne peut y avoir qu'un seul exemple.

2. Vous devez créer cette instance vous-même.

3. Cette instance doit être fournie à d'autres objets.

Alors pourquoi utiliser le modèle PHP singleton ?

L'un des principaux scénarios d'application de PHP est le scénario dans lequel l'application traite la base de données. Dans une application, il y aura un grand nombre d'opérations de base de données pour le comportement de connexion du handle de base de données. à la base de données, l'utilisation du mode singleton peut éviter un grand nombre d'opérations nouvelles. Parce que chaque nouvelle opération consomme des ressources système et mémoire.

class Single {
private $name;//声明一个私有的实例变量
private function __construct(){//声明私有构造方法为了防止外部代码使用new来创建对象。
}
static public $instance;//声明一个静态变量(保存在类中唯一的一个实例)
static public function getinstance(){//声明一个getinstance()静态方法,用于检测是否有实例对象
if(!self::$instance) self::$instance = new self();
return self::$instance;
}
public function setname($n){ $this->name = $n; }
public function getname(){ return $this->name; }
}
$oa = Single::getinstance();
$ob = Single::getinstance();
$oa->setname('hello world');
$ob->setname('good morning');
echo $oa->getname();//good morning
echo $ob->getname();//good morning
Copier après la connexion

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!

Étiquettes associées:
source:liqingbo.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