Heim > Artikel > Backend-Entwicklung > PHP-Designmuster, einfaches Factory-Muster
Musik hören
Zu den gängigen Musikplayern, die derzeit auf dem Markt sind, gehören QQ Music, NetEase Cloud Music, Kugou Music, Kuwo Music usw.
Verschiedene Menschen verwenden möglicherweise unterschiedliche Player, um Musik zu hören. Wir können einen der Musikplayer auswählen, um Musik zu hören. Bitte sehen Sie sich den folgenden Code an:
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(); // 开始播放
Wenn wir zu diesem Zeitpunkt Kuwo Music Player hinzufügen möchten oder glauben, dass wir NetEase Cloud Music entfernen können (kann nicht angehört werden). it) Jay Chous Lied), dann muss das Programm geändert werden (der bedingte Zweig muss geändert werden). Daher ist ein solcher Code schwierig zu warten.
Ein Prinzip beim Schreiben von Programmen besteht darin, Änderungen zu extrahieren und zu kapseln. Wir extrahieren den bedingten Zweig und kapseln ihn in eine neue Klasse.
Einfacher Engineering-Modus
Definition: Definieren Sie eine Factory-Klasse, die Instanzen verschiedener Klassen basierend auf unterschiedlichen Parametern zurückgeben kann Instanzen haben normalerweise eine gemeinsame übergeordnete Klasse
Im einfachen Factory-Muster ist die zum Erstellen der Instanz verwendete Methode normalerweise eine statische Methode, daher wird das einfache Factory-Muster auch statische Factory-Methode
Als nächstes erstellen wir einen einfachen Engineering-Modus mit dem folgenden Code: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; } }Dann kann der Code am Anfang des Artikels wie folgt geändert werden:
$player = SimpleFactory::createMusicPlayer($type); $player->on(); // 打开播放器 $player->choiceMusic('思念是一种病'); // 选择歌曲 $player->play(); // 开始播放
Vielleicht haben Sie Fragen, welchen Nutzen hat das? Es scheint, dass das Problem einfach von einem Ort zum anderen verlagert wird.
Denken Sie darüber nach, wir hören vielleicht morgens oder abends Musik, oder wenn dieser Player nicht die Musik hat, die wir hören möchten, müssen wir zu einem anderen Player wechseln. Dann ist es möglich, an mehreren Stellen neue Musikplayer zu erstellen. Daher ist es besser, diesen Code an einer Stelle abzulegen als an mehreren Stellen. Wenn er geändert werden muss, muss er sich nur an einer Stelle befinden. Wenn Sie diese Methode beibehalten, müssen Sie nur createMusicPlayer in der einfachen Factory-Musterklasse ändern.Das obige ist der detaillierte Inhalt vonPHP-Designmuster, einfaches Factory-Muster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!