Vediamo se ci sono adesso.
Creo una classe che mi fornisce le varie azioni:
public class Exec {
public void esegui(){
System.out.println("ciao");
}
public String esegui(int k, int j){
return ""+k/j;
}
}
Poi ho la mia interfaccia:
public interface Command {
void execute();
}
Adesso le classi che richiedono l'esecuzione di un'azione in particolare, implementano l'interfaccia Command ed hanno al loro interno un campo come oggetto Exec, il quale viene inizializzato da costruttore.
public class Bottone1 implements Command{
private Exec ex;
public Bottone(Exec ex){
this.ex = ex;
}
@Override
public void execute() {
ex.esegui();
}
}
public class Bottone2 implements Command{
private String label;
private int k,j;
private Exec ex;
public Bottone2(Exec ex, int k, int j){
this.ex = ex;
this.k = k;
this.j = j;
}
@Override
public void execute() {
label = ex.esegui(k, j);
}
}
Somiglia quasi al Singleton ma da quanto ho capito il Command offre diverse implementazioni di azioni differenti, mentre il Singleton implementazioni differenti della stessa azione.
Può andare adesso?