Sto creando un meccanismo di serializzazione / deserializzazione dei dati essenzialmente per un oggetto di archiviazione persistente. A causa della varietà di sistemi su cui questo meccanismo può essere eseguito, ci deve essere un numero variabile di "driver" che potrebbero essere utilizzati per serializzare o deserializzare i dati.
Ho difficoltà a capire il livello appropriato di astrazione per questo sistema. In primo luogo, quando costruisco un "driver", dovrebbe avere un riferimento all'oggetto che sto memorizzando, o questo oggetto deve essere passato alle varie funzioni di scrittura?
Quindi, supponiamo di avere un po 'di DataAccessLayer
che avvolge il mio DataAccessDriver
. Il mio DataAccessLayer
contiene necessariamente un riferimento a qualche DataObject
che avvolge e utilizza DataAccessDriver
per mantenere effettivamente una rappresentazione serializzata di DataObject
.
La domanda è, se la DataAccessDriver
è costruita con un riferimento al DataObject
, o dovrei passare in DataObject
per ogni chiamata di funzione che DataAccessDriver
fa?