Maison >développement back-end >tutoriel php >Modèle de conception PHP modèle d'usine simple

Modèle de conception PHP modèle d'usine simple

齐天大圣
齐天大圣original
2020-07-30 15:51:221890parcourir

É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.

Modèle de conception PHP modèle dusine simple

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn