Originariamente inviato da tcc
Entrambi le classi dovrebbero essere chiamate dalla classe CONTROLLER, ma non so proprio come
fare,a fare una chiamata polimorfica,Come Dovrei fare?GRAZIE
L'avevo già spiegato in una tua altra discussione. La classe Controller userà da qualche parte una variabile di tipo IQuery. Dove ... dipende. Può essere un campo di istanza o un parametro di un metodo. Alla classe Controller infatti non dovrebbe importare quale è il tipo esatto dell'oggetto su cui operare, se è un MySqlQuery piuttosto che un OracleQuery. Alla classe Controller dovrebbe importare solo sapere che l'oggetto è-un IQuery.
Una cosa del genere:
codice:
public class Controller {
private IQuery iq;
public Controller (IQuery iq) {
this.iq = iq;
}
public void esegui () {
iq.buildQuery ();
iq.execQuery ();
}
}
O ad esempio senza che Controller abbia un campo di istanza IQuery, basta avere un metodo:
codice:
public void esegui (IQuery iq) {
iq.buildQuery ();
iq.execQuery ();
}
Ma poi dove metti e usi un reference di tipo IQuery dipenderà da cosa devi fare di preciso.
Spero di aver chiarito la questione.