Diciamo che ho un progetto che deve fare quanto segue:
- Chiamate multiple da leggere dal database in cui ogni chiamata è una query diversa e restituisce un oggetto valore (ha solo getter / setter). Diciamo che finiamo di ricevere 20 oggetti valore
- Esegue un po 'di logica con i dati di questi oggetti valore
Sto cercando di fare il brainstorming della best practice per i parametri ai miei metodi per il secondo punto, dato che alcuni oggetti valore potrebbero avere più campi di quelli richiesti dai miei metodi.
Diciamo che voglio realizzare il secondo punto elenco avendo molte classi che eseguono ciascuna una parte del lavoro. Supponiamo che una classe abbia bisogno di 7 campi da un oggetto valore e 8 campi da un altro oggetto valore e che entrambi gli oggetti valore abbiano ciascuno più di 30 campi. Posso pensare a 3 modi per farlo:
-
Chiedi alla mia classe di prendere in considerazione i due oggetti valore di cui ha bisogno come parametro. La classe chiamerà quindi 15 getter e poi farà qualcosa con i campi. Prendi questo stesso approccio per il resto delle mie classi dove prendono gli oggetti valore di cui hanno bisogno
-
Codifica un nuovo oggetto valore che memorizza solo i 15 valori di cui ho bisogno. Da qualche parte nella mia applicazione dovrò fare una mappatura / conversione da questi due oggetti valore al mio nuovo oggetto valore. La mia classe chiamerà 15 getters e poi farà qualcosa con i campi. Prendi questo stesso approccio per il resto delle mie classi
-
Codifica qualche oggetto di valore enorme che memorizza tutti i dati di cui ho bisogno per l'intero secondo punto elenco. Prendiamo fondamentalmente tutti i nostri oggetti di valore e convertiamo tutti i dati di cui abbiamo bisogno in questo enorme oggetto di valore. La mia classe prenderà allora questo enorme oggetto di valore. La mia classe chiamerà 15 getters e poi farà qualcosa con i campi. Ogni classe che fa una parte della logica prenderà in questo enorme oggetto valore
Qual è l'approccio migliore?
-
sembra l'approccio più semplice. Tuttavia, è strano avere una classe che richiede più informazioni del necessario. Qualcuno che guarda la classe potrebbe voler sapere perché richiede 60 campi se ne userà solo 15.
-
sembra di gran lunga il più complicato in quanto ha molti mapping diversi ma ogni singola classe finisce per chiedere solo ciò di cui ha bisogno.