//让该类在外界无法造对象
//让外界可以造一个对象,做一个静态方法返回对象
//在类里面通过让静态变量控制返回对象只能是一个。
Copier après la connexion
Il y a trois points principaux dans le modèle singleton :
Premièrement, une classe ne peut avoir qu'une seule instance ;
La seconde est qu'il doit créer cette instance par lui-même La troisième est qu'il doit fournir cette instance à l'ensemble du système par lui-même ;
Pourquoi utiliser le mode singleton PHP
1 L'application de php se trouve principalement dans les applications de base de données, dans une application. Il y aura un grand nombre d'opérations de base de données lors du développement orienté objet, si vous utilisez le mode singleton, vous pouvez éviter un grand nombre de nouvelles opérations consommant des ressources, et vous pouvez également réduire les connexions à la base de données afin qu'il y ait trop de connexions. sont moins susceptibles de se produire. 2. Si une classe est nécessaire pour contrôler globalement certaines informations de configuration dans le système, elle peut être facilement implémentée en utilisant le mode singleton. Cela peut être vu dans la partie FrontController du zend. Cadre. 3. Dans une requête de page, il est facile de déboguer, car tout le code (comme la classe d'opération de base de données db) est concentré dans une seule classe, et nous pouvons définir des hooks dans la classe, journaux de sortie pour éviter var_dump et echo partout.
class cat
{
public $name;
private function __construct()
{
}
static $temp;
static function new_ob()
{
if(empty(self::$temp)){
self::$temp = new cat();
}
return self::$temp;
}
function speak(){
return "喵喵喵";
}
}
//$mao = new cat();
//如果没有猫就造一个,然后等于新的xxx,如果有,直接等于。达到限制的目的。
//$mao;
//if (empty($mao)){
// $mao = new cat();
//}
// $xxx = $mao;
$mao = cat::new_ob();
$mao2 = cat::new_ob();
//给1猫改名字,2猫的名字输出为1猫改的名字。此为单例。
$mao->name = "py";
Copier après la connexion
2. Modèle d'usine simple
①Classe de base abstraite : définir quelques méthodes abstraites dans la classe, Utilisé pour implémenter ②Hérité de la classe de base abstraite dans la sous-classe : implémenter la méthode abstraite dans la classe de base ③Classe Factory : utilisée pour instancier toutes les sous-classes correspondantes
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!