PDA

View Full Version : Strutturazione di una classe


0rph3n
18-05-2006, 18:19
Ciao a todos,
inanzitutto mi scuso per il messaggio che sarà di sicuro super incasinato ma non sono riuscito a spiegarmi meglio (idem per il titolo un po' troppo generico)!
Ho bisogno di un chiarimento circa la strutturazione di un paio di metodi che eseguono delle query!
Allora, spiego la situazione com'è ora:

Ho un metodo che inizializza i vari oggetti di cui ho bisogno (MySQLConnection, MySQLCommand, MySQLTransaction);
Ho tre metodi che eseguono una query ciascuno (che non chiamano il metodo per l'inizializzazione degli oggetti in quanto questo viene chiamato dal metodo che li raggruppa, vedi prossimo punto);
Ho un metodo che prima chiama il metodo per inizializzare gli oggetti necessari, fa partire una transazione e poi chiama i tre metodi esecutori di query. Le chiamate a questi tre metodi sono incapsulate in un costrutto try/catch, in questo modo se una delle query fallisce e di conseguenza lancia un'eccezione viene effettuato il rollback;

Adesso ho la necessità di chiamare singolarmente uno dei tre metodi esecutori di query e siccome questi non presentano al loro interno una chiamata all'inizializzazione degli oggetti necessari per la connessione al db sto pensando alla soluzione più adatta da attuare.
Queste sono quelle che mi sono venute in mente fin'ora:

creo dei metodi che prima chiamano il metodo per l'inizializzazione degli oggetti necessari alla connessione e poi chiamano un metodo esecutore di query;
creo dei metodi identici ai metodi esecutori di query all'inizio dei quali piazzo una chiamata al metodo che inizializza gli oggetti;
modifico i metodi esecutori di query che ho adesso aggiungendo un parametro e la chiamata al metodo che inizializza gli oggetti incapsulata in un if che controlla il parametro passato;

Il mio parere è che la prima soluzione sia la più appetibile, ma non essendo esperto sento il bisogno/voglia di sentire le vostre opinioni in merito!
Giusto per rompere un'altro po', chiedo se esistono testi che trattano di queste e/o simili problematiche e in caso affermativo quali siano i migliori!

Grazie mille,
'iao

0rph3n
19-05-2006, 08:30
up :(
...pliiiiiiiiis!

thebol
19-05-2006, 08:40
Realizzare un oggetto Connesione con un metodo getConnectionInfo che controlla se hai inizializzato quello che ti serve.

Se non l'hai inizializzato lo inizializza, altrimenti ti ritorna i riferimenti a quello che ti serve.

dupa
19-05-2006, 08:46
io farei una classe che gestisce tutte le chiamate al db.
quando chiami il metodo connection di questa classe, lui si collega e imposta un attributo privato che segnala il fatto che è connesso al db.

quando uno chaima il metodo query, il metodo verifica che sia già disponibile la connessione, in caso affermativo, prosegue ed esegue la query, in caso negativo solleva un eccezione es: NotConnectedToDb

spero di aver capito la domanda.
ciao

0rph3n
19-05-2006, 12:21
grazie ragazzi, ora come ora sono più convinto dalla soluzione di dupa!
dopo mangiato la implemento!

'iao e grazie ancora!