[PHP5] Design Pattern - Multiton
Posté : 29 avr. 2006, 11:36
Amis programmeurs, voici un Design Pattern made by me !
Je pense qu'une telle class (ou schéma) doit existait, mais dans le doute, je vous la mets !
Présentation:
Ce classe mais en oeuvre un design pattern basé sur le singleton. Il s'agit du multiton. Au lieu d'implanter un singleton dans chaque classe, cette classe gère toute les classes voulues comme des singletons ... Je pense que mon explication n'est pas des meilleures alors rien ne vaut un bon exemple !
Exemple:
Je pense qu'une telle class (ou schéma) doit existait, mais dans le doute, je vous la mets !
Présentation:
Ce classe mais en oeuvre un design pattern basé sur le singleton. Il s'agit du multiton. Au lieu d'implanter un singleton dans chaque classe, cette classe gère toute les classes voulues comme des singletons ... Je pense que mon explication n'est pas des meilleures alors rien ne vaut un bon exemple !
Exemple:
class Tester
{
public $str = 'bonjour';
}
$a = Multiton::get_instance( 'Tester' );
$a->str = 'hello';
$b = Multiton::get_instance( 'Tester' );
echo $b->str;
// hello
$b->str = 'salut';
echo $a->str;
// salut
Source:
class Multiton
{
// Instances
private static $_instances = array();
// Caller
public static function get_instance( $instance )
{
// Si l'objet n'est pas créé ...
if ( ! isset( self::$_instances[ $instance ] ) )
{
// ... on le crée
self::$_instances[ $instance ] = new $instance;
}
// Retourne l'instance
return self::$_instances[ $instance ];
}
}