Das politische Muster ist ein Verhaltensdesignmuster, das zur Laufzeit eine dynamische Auswahl der Algorithmischen Richtlinien ermöglicht. In PHP kann die Verwendung von Richtlinienmustern die Logikkopplung effektiv implementieren und die Code -Flexibilität und -wartbarkeit verbessern. Dieses Modell folgt dem Open-Closier-Prinzip, dh offen für Erweiterungen und für Modifikationen geschlossen.
Wenn Sie als Beispiel E-Commerce-Plattformen einnehmen, genießen Benutzer unterschiedlicher Ebene unterschiedliche Rabattstrategien: Kein Rabatt für normale Benutzer, 10% Rabatt für VIP-Benutzer und 20% Rabatt für SVIP-Benutzer. Durch das Richtlinienmodell können wir jede Preisstrategie in eine unabhängige Klasse für ein einfaches Management und die Expansion zusammenfassen.
abstract class PriceStrategy {
abstract public function calculatePrice($price);
}
Erstellen Sie für verschiedene Benutzerebenen drei Klassen, die von Pricestrategy geerbt wurden:
class RegularStrategy extends PriceStrategy {
public function calculatePrice($price) {
return $price;
}
}
class VipStrategy extends PriceStrategy {
public function calculatePrice($price) {
return $price * 0.9;
}
}
class SvipStrategy extends PriceStrategy {
public function calculatePrice($price) {
return $price * 0.8;
}
}
Die Bestellklasse realisiert eine flexible Preisberechnung, indem Richtlinienobjekte festgelegt werden:
class Order {
private $priceStrategy;
public function setPriceStrategy(PriceStrategy $strategy) {
$this->priceStrategy = $strategy;
}
public function calculateTotalPrice($price) {
return $this->priceStrategy->calculatePrice($price);
}
}
Wir können Richtlinienklassen basierend auf Benutzerebene dynamisch auswählen:
$order = new Order();
$regularStrategy = new RegularStrategy();
$order->setPriceStrategy($regularStrategy);
$regularPrice = $order->calculateTotalPrice(100); // Ausgabe100
$vipStrategy = new VipStrategy();
$order->setPriceStrategy($vipStrategy);
$vipPrice = $order->calculateTotalPrice(100); // Ausgabe90
$svipStrategy = new SvipStrategy();
$order->setPriceStrategy($svipStrategy);
$svipPrice = $order->calculateTotalPrice(100); // Ausgabe80
Durch das Richtlinienmodell werden unterschiedliche Geschäftsregeln in unabhängige Klassen verkörpert, wodurch die Kernlogik klarer wird und eine gute Skalierbarkeit aufweist. Wenn Sie eine neue Richtlinie auf Benutzerebene hinzufügen, müssen Sie nur eine neue Richtlinienklasse hinzufügen, ohne den vorhandenen Code zu ändern.
Das Strategiemodell ist ein sehr praktisches Designmodell in der PHP -Entwicklung und ist besonders für das Systemdesign mit sich ändernden Verhaltensweisen geeignet. Durch rationales Ansatz des Strategiemodells kann die Struktur und Wartbarkeit des Codes effektiv verbessert werden, die Systemkomplexität verringert und die Entwicklungseffizienz verbessert werden.