Ein politisches Muster ist ein Verhaltensdesignmuster, das eine Reihe von Algorithmen definiert, die voneinander ersetzt werden können und die Auswahl und Verwendung von Algorithmen aus der Implementierung von Algorithmen entkoppelt.
In PHP können uns politische Muster helfen, mit Klassen mit unterschiedlichem Verhalten umzugehen. Durch die Einkapselung verschiedener Algorithmen wechselt die Implementierung von Algorithmen dynamisch nach Anforderungen zur Laufzeit, Verbesserung der Codeflexibilität und Skalierbarkeit.
Angenommen, wir müssen eine Sortierklasse implementieren und verschiedene Sortieralgorithmen entsprechend unterschiedlichen Anforderungen verwenden.
Zunächst erstellen wir eine Sortierpolitikschnittstelle und definieren eine Sort -Methode Sort ():
Implementieren Sie als Beispiel eine bestimmte Sortierstrategie. Nehmen Sie hier Blasensortier und schnelles Sortieren als Beispiel:
Erstellen Sie als Nächstes eine Sortierkontextklasse, die ein Sortierpolitikobjekt besitzt und eine Methode zum Umschalten der Sortierrichtlinie bietet:
Jetzt können wir mit dem Richtlinienmuster sortieren, vorausgesetzt, wir wählen die Blasensortierstrategie aus:
Durch Aufrufen der Sort () -Methode wird der Blasensortieralgorithmus verwendet, um $ Data zu sortieren.
Wenn wir zum Schnellsortieralgorithmus wechseln müssen, müssen wir nur die Methode SetStrategy () aufrufen, um zu wechseln:
Auf diese Weise wird $ sortEdData mit einem schnellen Sortieralgorithmus sortiert.
Verwenden Sie den Richtlinienmodus, um das kostenlose Wechsel des Algorithmus zu erreichen. Durch die Einkapselung spezifischer Algorithmen werden die Auswahl und Verwendung von Algorithmen aus der Implementierung von Algorithmen entkoppelt.
Das politische Modell entspricht auch dem Prinzip des Öffnens und Schließens, wodurch neue Algorithmen problemlos erweitert werden können.
Das politische Muster erhöht die Anzahl der Klassen, und es müssen mehr Klassen erstellt werden, um verschiedene Algorithmen zu implementieren.
Für einige einfache Anwendungsszenarien kann die Verwendung von Richtlinienmustern zu komplex erscheinen, wodurch die Komplexität des Codes erhöht wird.
Der Strategiemodus ist ein Entwurfsmodus, der kostenloses Wechsel von Algorithmen implementiert. Durch die Abstrahme verschiedener Algorithmen wird die Auswahl von Algorithmen aus der Verwendung von Algorithmen und der Implementierung von Algorithmen entkoppelt.
In PHP kann das Richtlinienmuster uns helfen, mit einigen Klassen mit unterschiedlichem Verhalten umzugehen, wodurch der Code flexibler und skalierbarer wird.
Das Strategiemodell wird in tatsächlichen Projekten häufig verwendet, z. B. die Auswahl von Zahlungsmethoden, die Auswahl von Dateispeichermethoden usw.
Obwohl das politische Muster die Anzahl der Klassen erhöht, kann es eine bessere Skalierbarkeit und Wartung bieten. Daher sollten wir im Design entscheiden, ob wir das Richtlinienmodell entsprechend der tatsächlichen Situation verwenden sollen.