venerdì 5 febbraio 2016

Java metodi che restituiscono piu' oggetti

C'e' un buon motivo per cui un metodo dovrebbe restituire UN solo tipo. Ma potreste trovarvi nella situazione di dover mettere le mani su un metodo fatto da qualcun altro, p.es che inserisce una riga a db e restituisce una ricevuta (e la usa per mandarla a frontend). Voi dovete fare delle modifiche e prendervi che ne so l'id della riga inserita.

Hibernate avrebbe un comportamento carino, cioe' i metodi save/updaterestituiscono l'id inserito/updatato il metodo save restituisce l'id della riga inserita. Ma il vostro metodo restituisce qualcos'altro e quel qualcosa serve.

a) andate a db e vi rifate una query con tutti gli altri dati e pregate che sia proprio quella che vi serve (in piu' avete il rallentamento dovuto al fatto di riandare a db per niente)

b) modificate il metodo in modo da restituire una mappa: in questo modo non avete bisogno di andare a db una volta di troppo, siete sicuri che quell'id e' proprio quello che volete, non aggiungete rallentamenti e avete tutto quello che vi serve. Ovviamente nei commenti specificate quali chiavi avete usato per mettere cosa, in modo che il povero cogl programmatore che viene dopo sapra' come ripescarseli. Ovviamente avete come effetto collaterale che tutte le chiamate a quel metodo andranno modificate.

c) create un terzo metodo che restituisce una mappa: vantaggi gli stessi di sopra con in piu' il fatto di non dovere modificare tutti i punti del codice ma solo quello dove vi serve a voi.

1 commento:

I messaggi non appaiono subito ma a seguito dell'approvazione di un moderatore. Siete pregati di seguire le seguenti regole