Die Bedeutung des Strategiemusters besteht darin, eine Reihe von Algorithmen zu definieren, sie einzeln zu kapseln und sie austauschbar zu machen.
Ein kleines Beispiel kann es uns verdeutlichen.
Erinnern Sie sich an die animate-Methode in jquery.
Diese beiden Codezeilen bewirken, dass sich das Div innerhalb von 1000 ms um 200 Pixel nach rechts bewegt. Linear (gleichmäßige Geschwindigkeit) und kubisch (kubische Beschleunigung) sind die Kapselung eines Strategiemusters.
Nehmen wir ein weiteres Beispiel. Auf der Seite dev.qplus.com, die ich in der ersten Jahreshälfte geschrieben habe, gibt es für jedes Mitglied des Formulars unterschiedliche Verifizierungsregeln.
Zum Beispiel muss im Namensfeld überprüft werden, dass es keine leeren, sensiblen Wörter enthält und die Zeichen zu lang sind. Natürlich können Sie drei andere Dinge schreiben, um das Problem zu lösen, aber die Skalierbarkeit und Wartbarkeit des Schreibens von Code auf diese Weise kann man sich vorstellen. Wenn das Formular mehr Elemente enthält und mehr Situationen überprüft werden müssen, ist es nicht unmöglich, insgesamt Hunderte von if elses zu schreiben.
Ein besserer Ansatz besteht also darin, jede Validierungsregel separat mithilfe des Strategiemusters zu kapseln. Wenn Sie welche Art von Bestätigung benötigen, müssen Sie nur den Namen der Richtlinie angeben. So:
Wie Sie sehen, können verschiedene Validierungsregeln leicht geändert und untereinander ersetzt werden. Wenn der Produktmanager eines Tages vorschlägt, die Zeichenbeschränkung auf 60 Zeichen zu ändern. Es dauert nur 0,5 Sekunden, um die Arbeit abzuschließen.