Dieser Artikel beschreibt die Definition und Verwendung von Java -Richtlinienmustern. Teilen Sie es für Ihre Referenz wie folgt weiter:
1. Definition:
Definieren Sie eine Reihe von Algorithmen, verkapseln Sie sie nacheinander und ermöglichen Sie sie durcheinander.
2. Vorteile:
(1) Kontext und spezifische Strategie sind locker gekoppelt, sodass der Kontext nur wissen muss, in welcher Instanz die Strategie -Schnittstellenklasse implementiert werden soll, muss jedoch nicht wissen, welche Klasse es ist.
(2) Das politische Modell entspricht dem Prinzip der Öffnung und Schließung. Beim Hinzufügen einer neuen spezifischen Klasse müssen der Code der Kontextklasse nicht geändert werden. Der Kontext kann auf eine Instanz der neuen spezifischen Richtlinie verweisen.
III. Beispiel:
Das Folgende ist eine detaillierte Erklärung des Strategiemodells durch eine Frage.
Experimentelle Anforderungen:
Xiao Ding ist ein Programmierer in Alibaba. An diesem Tag gab ihm der Projektmanager eine Klassendefinition
öffentliche Klassenarbeiter {int id; Zeichenfolge Name; int Alter;}Xiao Ding sah, dass dies nicht die Definition eines Arbeitnehmers war, einschließlich Zahlen -ID, Name, Alter usw.
Der Manager sagte, ich brauche Sie, um eine Funktion zu schreiben, die die älteste unter einer Gruppe von Arbeitnehmern finden kann. Die Methodenerklärung lautet (oder so ähnlich):
Arbeiter -Searchworker (List <Anters> Arbeitnehmer);
Die List<Worker> workers sind die Daten dieser Arbeiter. Wenn der älteste Arbeiter gefunden wird, wird das Arbeiterobjekt zurückgegeben. Wenn Arbeiter keine Knoten haben, geben Sie NULL zurück.
Antwort:
1. Strategie
Im Richtlinienmodus wird diese Schnittstelle als Workstrategy bezeichnet (in bestimmten Fragen kann dieser Name nach bestimmten Fragen benannt werden) und der Code lautet wie folgt:
Arbeitstrategy.java
Import Java.util.List; öffentliche Schnittstelle Arbeitstrategy {öffentlicher Arbeiter Areaverage (List <Werbietein> Liste);}2. Kontext
Die kontextorientierte Richtlinie ist sowohl eine grenzflächenorientierte Klasse. Der Code ist wie folgt:
Maxage.java
Import Java.util.List; Public Class Maxage {Arbeitstrategie Arbeitstrategy; public void setworkStrategy (Arbeitstrategie Arbeitstrategy) {this.workStrategy = Arbeitstrategy; } public Worker getfindMax (Liste <Werarbeit> Liste) {if (arbeitstrategy! sonst {return null; }}}3. Spezifische Strategien
Die spezifische Strategie besteht darin, die Arbeitsstrategie -Schnittstellenklasse zu implementieren, dh der abstrakte Arbeiter in der Schnittstelle muss neu schreiben.
Areaververage (List <Worker> List) -Methode
Der Code ist wie folgt:
StrategyMaxage.java
Java.util.List importieren; int maxage = 0; für (int j = 0; j <list.size (); j ++) {fs [j] = list.get (j) .getage (); if (fs [maxage] <= fs [j]) {maxage = j; }} return list.get (maxage); }}4. Verwendung des Richtlinienmodus
Application.java
Java.util.ArrayList; import java.util.list; public class application {public static void main (String [] args) {list <Werarbeit> list = new ArrayList <> (); list.add (neuer Arbeiter (1, "Zhang San", 30)); list.add (neuer Arbeiter (2, "li si", 40)); list.add (neuer Arbeiter (3, "Wang Wu", 33)); Maxage findage = new maxage (); findage.setWorkStrategy (new StrategyMaxage ()); Worker findw = findage.getFindMax (Liste); System.out.println ("Wulin.com Testergebnisse:"); System.out.println ("Der älteste Arbeiter:"+findw.getid ()+""+findw.getname ()+""+findw.getage ()); }} Klasse Worker {int id; Zeichenfolge Name; int Alter; public int getid () {return id; } public void setId (int id) {this.id = id; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public int getage () {return ay; } public void setage (int age) {this.age = älter; } public Worker (int id, String -Name, int Alter) {Super (); this.id = id; this.name = name; this.age = Alter; } public Worker () {Super (); // todo automatisch generierter Konstruktor Stub}}}5. Betriebsergebnisse:
Für mehr Java-bezogene Inhalte können Leser, die an dieser Website interessiert sind, die Themen anzeigen: "Java-Datenstruktur und Algorithmus-Tutorial", "Zusammenfassung der Java-Operation DOM-Knoten-Tipps", "Zusammenfassung der Java-Datei- und Verzeichnisoperationstipps" und "Zusammenfassung von Java Cache Operation Tipps" "
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.