Algorithmuswechselmuster
</ font>
Der Beispielcode lautet Vergleichen Sie zwei Klasseninstanzen Eine Klasse, die das Vergleichsergebnis als int-Wert zurückgibt Mit Strategie-Vererbungsklasse erstellen
Ich habe den Algorithmus nicht gewechselt Der int-Wert des Rückgabewerts wird als Algorithmus ausgedrückt
Überprüfen Sie mit der folgenden Klassenstruktur
Klasse | Erläuterung |
---|---|
interface Strategy | Schaltalgorithmus definieren Die Methode ist sam.Vergleicht zwei Klasseninstanzen und gibt das Vergleichsergebnis als int-Wert zurück |
compare.class | Strategie umsetzen |
useStrategy.class | Wird vom Benutzer zum Ausführen des Schaltalgorithmus verwendet |
sam.class | Zielklasse verglichen werden |
user(Main.class) | Funktionsprüfung |
interface_Strategy
interface Strategy{int compare(sam s1,sam s2);}
compare.class
class compare implements Strategy{
public int compare(sam s1,sam s2){
if(s1.i < s2.i){return 1;}else
if(s1.i == s2.i){return 0;}else{
return -1;
}
}
}
useStrategy.class
class useStrategy{
Strategy strategy = null;
useStrategy(Strategy st) {this.strategy=st;}
int compare(sam s1,sam s2){return strategy.compare(s1,s2);}
}
sam.class
class sam{
String str;
int i;
sam(String str,int i){
this.str = str;
this.i = i;
}
}
user(Main.class)
public static void main(String[] args){
sam sam1 = new sam("s1",3);
sam sam2 = new sam("s2",2);
compare com = new compare();
useStrategy us = new useStrategy(com);
System.out.println(us.compare(sam1,sam2));
}}
Recommended Posts