Les modèles de conception sont des solutions réutilisables résumées dans le processus de développement logiciel, parmi lesquelles le modèle singleton est l'un des modèles de création les plus couramment utilisés. Le modèle singleton garantit qu’il n’existe qu’une seule instance d’une classe et fournit un point d’accès global. En PHP, le mode singleton est largement utilisé dans la connexion à une base de données, la journalisation, la gestion de la configuration et d'autres scénarios. Cet article présentera en détail le concept, la méthode d'implémentation et des exemples d'application en PHP du modèle singleton.
Le modèle singleton est un modèle de conception créationnel qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global. Ses principaux objectifs incluent la limitation du nombre d'instanciations, l'économie des ressources système et la fourniture d'un accès unifié.
Les principales caractéristiques du modèle singleton :
Les méthodes de mise en œuvre courantes du modèle singleton incluent le style de l'homme paresseux et le style de l'homme affamé.
Le modèle paresseux singleton ne crée une instance d’objet que lorsqu’il est utilisé pour la première fois. L'exemple de code est le suivant :
classe Singleton {
instance $ statique privée ;
fonction privée __construct() {} // Constructeur privé fonction statique publique getInstance() {
if (self::$instance == null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}La méthode getInstance() est utilisée pour obtenir une instance unique. L'objet est créé lors de son premier appel, puis l'instance existante est renvoyée directement.
Le modèle singleton de style Hungry crée une instance d'objet lorsque la classe est chargée. L'exemple de code est le suivant :
classe Singleton {
instance privée statique $ = new Singleton ();
fonction privée __construct() {} // Constructeur privé fonction statique publique getInstance() {
return self::$instance;
}
}$instance est initialisé lorsque la classe est chargée et la méthode getInstance() renvoie directement l'instance.
Le mode singleton convient à la connexion à une base de données, à la journalisation, à la gestion de la configuration et à d'autres scénarios en PHP. Par exemple, les connexions aux bases de données consomment généralement des ressources. Le mode singleton garantit qu'une seule instance de connexion est créée, améliorant ainsi les performances.
base de données de classe {
instance $ statique privée ;
fonction privée __construct() {} // Constructeur privé fonction statique publique getInstance() {
if (self::$instance == null) {
self::$instance = nouvelle base de données();
//Créer une connexion à la base de données}
return self::$instance;
}
}Grâce à Database::getInstance(), vous pouvez obtenir une instance de connexion à la base de données unique dans tout le système pour éviter les créations répétées et améliorer l'utilisation des ressources.
Cet article présente le concept, les caractéristiques et les méthodes d'implémentation du modèle singleton en PHP, y compris le style paresseux et le style affamé, et montre son application dans la connexion à une base de données et dans d'autres scénarios. Le mode singleton fournit un point d'accès unifié et améliore les performances du système en limitant le nombre d'instanciations de classe. La maîtrise du modèle singleton peut aider les développeurs à gérer plus efficacement les ressources et les objets dans le cadre du développement réel.