Heim > Artikel > Backend-Entwicklung > Der Unterschied zwischen dem PHP-Factory-Modus und dem Strategiemodus
Fabrik ist ein Schöpfungsmuster, ihre Funktion besteht darin, Objekte zu erstellen;
Strategie ist ein Verhaltensmuster, ihre Funktion besteht darin, ein Objekt unter vielen Verhaltensweisen auswählen zu lassen
Die Problempunkte sind unterschiedlich
Ein Problemobjekt wird erstellt
Eine Kapselung des Problemverhaltens ( empfohlenes Lernen: PHP-Video-Tutorial)
Verschiedene Probleme lösen
Factory Pattern ist ein kreatives Designmuster, das Anweisungen akzeptiert Erstellen Sie eine Instanz, die den Anforderungen entspricht. Sie löst hauptsächlich die einheitliche Verteilung von Ressourcen und ist völlig unabhängig von der Erstellung von Objekten, sodass die Erstellung von Objekten nichts mit der spezifischen Verwendung des Kunden zu tun hat. Wird hauptsächlich bei der Auswahl mehrerer Datenbanken, beim Laden von Klassenbibliotheksdateien usw. verwendet.
Der Strategiemodus dient dazu, den Wechsel und die Erweiterung von Strategien zu lösen. Genauer gesagt definiert er Strategiefamilien und kapselt sie separat, sodass sie durch das Strategiemuster ersetzt werden können die Änderungen der Strategien unabhängig. Für Kunden, die die Strategie nutzen.
Die Fabrik entspricht einer Black Box und die Strategie entspricht einer White Box;
Beispiel:
<?php header('content-type:text/html;charset=utf-8'); abstract class Product { abstract public function getName(); } class ProductA extends Product { public function getName() { echo '这是A商品<br>'; } } class ProductB extends Product { public function getName() { echo '这是B商品<br>'; } } //工厂模式 class ProductFactory { public static function create($num) { switch($num) { case 1: return new ProductA(); case 2: return new ProductB(); } return null; } } //传递不同的参数获取不同的对象 $obj=ProductFactory::create(1); $obj->getName(); //这是A商品 $obj=ProductFactory::create(2); $obj->getName(); //这是B商品 //=======策略模式 <?php header('content-type:text/html;charset=utf-8'); interface IStrategy { function ontheway(); } class Walk implements IStrategy { public function ontheway() { echo '走着去<br>'; } } class Bick implements IStrategy { public function ontheway() { echo '骑自行车去<br>'; } } class Bus implements IStrategy { public function ontheway() { echo '坐巴士去<br>'; } } //策略模式,传递不同的参数,调用不同的策略 class Strategy{ public function getWay(IStrategy $obj) { $obj->ontheway(); } } $obj=new Strategy(); $obj->getWay(new Walk); //走着去 $obj->getWay(new Bick); //骑自行车去 $obj->getWay(new Bus); //坐巴士去
Weitere PHP-bezogene Technologien Artikel, besuchen Sie bitte die Spalte PHP-Grafik-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen dem PHP-Factory-Modus und dem Strategiemodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!