Voglio che il mio programma:
- legge alcune linee di input dal file CSV
- scrive le righe di output sul file di stringa semplice
- legge alcuni input dallo stesso file in (2) e confrontalo con alcuni dati calcolati
Voglio prendere in considerazione questi livelli di astrazione:
- crea l'interfaccia
Dal
con le operazioni CRUD - implementa
Dal<T1>
,Dal<T2>
,Dal<T3>
- crea un'interfaccia FileHandler con
read
esave
operazioni - implementa
CsvFileHandler
,StringFileHandler
E poi:
-
Dal<T1>
implementeràread
con un membro diCsvFileHandler
-
Dal<T2>
implementeràread
ewrite
con un membro diStringFileHandler
-
Dal<T3>
implementeràwrite
con un membro diStringFileHandler
Va bene che Dal<T1>
e Dal<T3>
implementano davvero Dal
solo parzialmente (non tutto CRUD). O dovrei scegliere altre astrazioni?
Sto usando guice DI e ho bisogno di differenziare Dal<T1>
e Dal<T2>
anche se entrambi read
/ write
tipo String
. Così ho creato una dummy di classi diverse per T1
, T2
.
Pensi che io usi troppa astrazione? FileHandler
e Dal
si sovrappongono?
Qualunque altro modo per differenziare l'iniezione di Guice anziché creare dummyTypes
?