[POO]_design pattern_Singleton - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [POO]_design pattern_Singleton (/showthread.php?tid=991) |
[POO]_design pattern_Singleton - Shidame - 31-03-2007 Bonjour à ceux que ce titre un peu pompeux n'a pas rebuté et aux autres aussi par la même occasion. Tout d'abord soyez indulgent car d'une part c'est mon premier tutorial et d'autre part car je débute dans le POO. Alors aujourd'hui je vais vous parler...du Singleton (non ne partez pas). Définition : Le singleton est un design pattern, il permet d'éviter d'avoir plusieurs objets identiques, donc les ressources en mémoire. D'une autre manière, il permet d'utiliser une même instance d'un objet tout au long d'une application. Commençons par l'exemple minimal d'un Singleton en PHP5 : Code PHP :
Explications : Code PHP :
Code PHP :
Il est donc impossible de faire : Code PHP :
Code PHP :
On utilise « self » et non pas « $this » car les accès sont défini comme statiques. Au final GetInstance() renvoie l'objet stocké dans $_instance, ainsi : Code PHP :
$objet1 et $objet2 contiennent le même objet. Utilisation courante du Singleton : Dans le cadre de l'utilisation d'une classe de connexions à une base de donnée, il est inutile et fortement déconseiller de créer à un nouvel objet à chaque fois que l'on requiert un accès aux données. En effet, pourquoi ne pas utiliser une connexion déjà ouverte ? C'est encore une fois grâce à la méthode singleton que l'on va y arriver. Voici comment procéder : Code PHP :
Comment ça marche ? Code PHP :
Voilà c'est (enfin) fini, j'espère que pour vous « Singleton » n'est plus la marque d'une prothèse auditive mais un moyen pratique et simple de réutiliser un objet dans une application. Merci de votre attention et n'hesitez pas à me critiquer et me corriger si j'ai dis des bétises. Edit : Remplacement de "return 'vive le Singleton';" par "echo 'vive le Singleton';", sur la remarque de Teclis01, car un constructeur ne dois pas posséder de return. RE: [POO]_design pattern_Singleton - orditeck - 31-03-2007 L'aide pour ce tutoriel ce trouve à cette adresse : http://www.jeuweb.org/board/showthread.php?tid=1430 |