Modèle de changement d'algorithme
</ font>
L'exemple de code est Comparez deux instances de classe Une classe qui renvoie le résultat de la comparaison sous forme de valeur int Créer avec la classe d'héritage de stratégie
Je n'ai pas changé d'algorithme La valeur int de la valeur de retour est exprimée sous forme d'algorithme
Vérifiez avec la structure de classe suivante
classe | Explication |
---|---|
interface Strategy | Définir la méthode de l'algorithme de commutation La méthode est sam.Compare deux instances de classe et renvoie le résultat de la comparaison sous forme de valeur int |
compare.class | Mettre en œuvre la stratégie |
useStrategy.class | Utilisé par l'utilisateur pour exécuter l'algorithme de commutation |
sam.class | Classe cible à comparer |
user(Main.class) | Contrôle de fonctionnement |
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