Definition: Das Verhalten einer Klasse oder ihres Algorithmus kann zur Laufzeit geändert werden. Im Richtlinienmodus erstellen wir ein Objekt, das verschiedene Richtlinien und ein Kontextobjekt darstellt, dessen Verhalten ändert, wie sich das politische Objekt ändert. Das politische Objekt ändert den Ausführungsalgorithmus des Kontextobjekts.
Merkmale:
1. Der Algorithmus kann frei umgeschaltet werden.
2. Vermeiden Sie die Verwendung mehrerer Bedingungen, um zu beurteilen.
3.. Gute Skalierbarkeit.
Anwendungen in der Entwicklung auf Unternehmensebene und gemeinsamer Frameworks: Java.servlet.http.httpServlet Service-Methode
Beispiel: Betriebsverhalten auf zwei Zahlen.
öffentliche Klasse Demo {public static void main (String [] args) {Strategy Strategy1 = New StrategyAdd (); Strategy Strategy2 = New StrategyDiv (); Kontextkontext1 = neuer Kontext (Strategie1); context1.execute (10, 5); context1 = neuer Kontext (Strategie2); context1.execute (10, 5); }} Schnittstellenstrategie {public void dooperation (int num1, int num2);} class StrategyAdd implementiert Strategie {public void dooperation (int num1, int num2) {System.out.println ("Addition ausführen"); System.out.println (num1+"+"+num2+"="+(num1+num2)); }} class StrategySub implementiert Strategie {public void Dooperation (int num1, int num2) {System.out.println ("Subtraktion ausführen"); System.out.println (num1+"-"+num2+"="+(num1-num2)); }} class StrategyMul implementiert Strategie {public void dooperation (int num1, int num2) {System.out.println ("Multiplikation ausführen"); System.out.println (num1+"*"+num2+"="+(num1*num2)); }} class StrategyDiv implementiert Strategie {public void Dooperation (int num1, int num2) {System.out.println ("Division ausführen"); System.out.println (num1+"/"+num2+"="+(num1/num2)); }} Klassenkontext {private Strategiestrategie; öffentlicher Kontext (Strategiestrategie) {this.strategy = Strategie; } public void execute (int num1, int num2) {Strategy.Dooperation (num1, num2); }}Das politische Modell betont die Laufzeitänderungen. Vielleicht spiegeln sich diese Laufzeitänderungen im obigen Code nicht gut wider. Wir können ein praktisches Szenario annehmen, dh wenn ein Objektparameter in eine Methode übergeben wird, müssen wir angenommen, wir müssen verschiedene Methoden entsprechend den verschiedenen Parametern auswählen. Wir werden in Betracht ziehen, wenn sie beurteilen können, während das Richtlinienmodell diese IF-ELSE klassifiziert, und dann die Richtliniengrenzmethode, die die Richtliniengrenzmethode beurteilt. Die spezifische Klasse der Objektparameter wird von JVM beurteilt. Wir müssen die Attributtypen des Objektparameters nicht verstehen usw. Dies vereinfacht nicht nur unsere Entwicklungsarbeit, sondern hat auch eine bessere Skalierbarkeit im Vergleich zu IF-ELSE.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.