Maison >développement back-end >tutoriel php >Modèle de conception PHP modèle d'usine simple
Écouter de la musique
Les lecteurs de musique grand public actuellement sur le marché incluent QQ Music, NetEase Cloud Music, Kugou Music, Kuwo Music, etc.
Différentes personnes peuvent utiliser différents lecteurs pour écouter de la musique. Nous pouvons choisir l'un des lecteurs de musique pour écouter de la musique, veuillez consulter le code suivant :
if ($type == 1) { $player = new QQPlayer(); } else if ($type == 2) { $player = new WyPlayer(); } else if ($type == 3) { $player = new KGPlayer(); } $player->on(); // 打开播放器 $player->choiceMusic('思念是一种病'); // 选择歌曲 $player->play(); // 开始播放
Si à ce moment, nous voulons ajouter Kuwo Music Player ou pensons pouvoir éliminer NetEase Cloud Music (impossible d'écouter it) la chanson de Jay Chou), alors le programme doit être modifié (la branche conditionnelle doit être modifiée). Un tel code est donc difficile à maintenir.
Un principe lors de l'écriture de programmes est d'extraire et d'encapsuler les modifications. Nous extrayons la branche conditionnelle et l’encapsulons dans une nouvelle classe.
Mode d'ingénierie simple
Définition : Définir une classe d'usine qui peut renvoyer des instances de différentes classes en fonction de différents paramètres créés. les instances ont généralement une classe parent commune
La méthode utilisée pour créer l'instance dans le modèle de fabrique simple est généralement une méthode statique, donc le modèle de fabrique simple est également appelé méthode de fabrique statique
Ensuite, créons un mode d'ingénierie simple avec le code suivant :
class SimpleFactory { public static function createMusicPlayer ($type) { if ($type == 1) { $player = new QQPlayer(); } else if ($type == 2) { $player = new WyPlayer(); } else if ($type == 3) { $player = new KGPlayer(); } else { return null; } return $player; } }
Ensuite, le code en début d'article peut être modifié comme suit :
$player = SimpleFactory::createMusicPlayer($type); $player->on(); // 打开播放器 $player->choiceMusic('思念是一种病'); // 选择歌曲 $player->play(); // 开始播放
Vous avez peut-être des questions, à quoi ça sert de faire ça ? Cela semble simplement déplacer le problème d’un endroit à un autre.
Pensez-y, nous pouvons écouter de la musique le matin ou le soir, ou si ce lecteur n'a pas la musique que nous voulons écouter, nous devons passer à un autre lecteur. Il est alors possible de créer de nouveaux lecteurs de musique à plusieurs endroits. Il est donc préférable de placer ce code au même endroit plutôt qu'à plusieurs endroits. Lorsqu'il doit être modifié, il suffit de le placer au même endroit. Lors du maintien de cette façon, il vous suffit de modifier createMusicPlayer dans la classe de modèle d'usine simple.
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!