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
Dalcon le operazioni CRUD - implementa
Dal<T1>,Dal<T2>,Dal<T3> - crea un'interfaccia FileHandler con
readesaveoperazioni - implementa
CsvFileHandler,StringFileHandler
E poi:
-
Dal<T1>implementeràreadcon un membro diCsvFileHandler -
Dal<T2>implementeràreadewritecon un membro diStringFileHandler -
Dal<T3>implementeràwritecon 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 ?