|
|
|
|
TUTORIEL PHP |
|
|
|
PHP : les design patterns Singleton et Factory |
Les design patterns sont une source de solutions fiables et reconnues aux problèmes courants du développement Objet. Explications de deux des patterns fondamentaux, avec code source en PHP.
(14/04/2006) |
|
Factory (Fabrique ou Usine)
Factory est un autre de ces modèles fondamentaux, élaborés par les défricheurs de modèles, les auteurs du Gang of Four ; ce n'est pas réellement un modèle tel qu'on les conçoit normalement, mais plutôt une méthode. Il fait cependant partie des modèles du GoF.
Son intention est de faciliter la création d'objet : elle autorise la création d'objets sans devoir spécifier la classe de l'objet à créer. Cette méthode crée un objet spécial, auquel est déléguée l'instanciation d'objets. En quelque sorte, le programme se reposera sur les classes de la méthode Factory, pour créer de nouveaux objets à sa place.
La méthode Factory vise donc à instancier des objets selon certains arguments, en dissimulant les détails de cette instanciation. L'exemple canonique concerne le chargement de pilotes de bases de données. L'objectif est d'instancier la classe Driver_MySQL ou Driver_SQLite, selon le cas. La méthode Factory propose donc de passer par la méthode générique présentée ici.
<?php
class MaClasse {
public static function chargerDriver($driver) {
if (include_once 'Drivers/' . $driver . '.php') {
$nomDeClasse = 'Driver_' . $driver;
return new $nomDeClasse;
} else {
throw new Exception ('Driver non trouvé');
}
}
}
$mysql = MaClasse::chargerDriver('MySQL');
$sqlite = MaClasse::chargerDriver('SQLite');
?>
Il s'agit de l'une des formes les plus simples que peut prendre ce modèle.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Comme vous pouvez le constater, les modèles de conception ne sont pas forcément de grandes solutions magiques à des problèmes insolubles, mais au contraire une mise à plat des pratiques les plus éprouvées du développement Objet. La plupart sont plus complexes que les deux que nous présentons ici, et les connaître tous amène à mieux penser et planifier son code.
|
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|