Heim > Backend-Entwicklung > PHP-Problem > Der Unterschied zwischen dem PHP-Factory-Modus und dem Strategiemodus

Der Unterschied zwischen dem PHP-Factory-Modus und dem Strategiemodus

(*-*)浩
Freigeben: 2023-02-23 06:36:01
Original
4383 Leute haben es durchsucht

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

Der Unterschied zwischen dem PHP-Factory-Modus und dem Strategiemodus

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(&#39;content-type:text/html;charset=utf-8&#39;);
abstract class Product {
abstract public function getName();
}
class ProductA extends Product  {
public function getName() {
echo &#39;这是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); //坐巴士去
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage