Quindi, se ho capito bene, vuoi una sorta di classe Data che ti permetta di leggere e scrivere senza conoscere i dettagli di base su come funziona.
Puoi farlo usando un pattern AbstractFactory che fornisce queste classi Data per scrivere / leggere. Ogni factory avrà la sua implementazione con un metodo per inizializzare e un metodo per l'arresto. Mentre il tuo sistema di file system non avrà probabilmente bisogno di fare molto, il tuo database factory dovrà stabilire una connessione e quindi chiuderla, per esempio. Devi essere in grado di fare tutto ciò senza passare i parametri alla fabbrica. Sarò onesto, non ho molta familiarità con actionscript, ma in Java si potrebbe dire, caricare un file di configurazione e il file di configurazione fornisce informazioni di connessione o quant'altro richiesto per l'inizializzazione della fabbrica.
Ogni tipo di factory restituirebbe un'implementazione specifica della classe Data che esegue il lavoro effettivo di scrittura / lettura da quella fonte. Il mio consiglio è che la posizione viene fornita al momento di chiamare la fabbrica e tale posizione rimane immutabile. In altre parole, per scrivere in una posizione diversa, è necessario chiamare di nuovo la fabbrica con un indirizzo diverso.
In questo modo si nascondono i dettagli di implementazione dal suo utilizzo nel programma, che va bene. Tuttavia, questo funziona solo fino a quando l'utilizzo rimane lo stesso tra tutte le implementazioni della classe Data. Ad esempio, se devi determinare il tipo di un'implementazione della classe Data in modo da poterlo trasmettere a un'istanza DatabaseData e quindi chiamare "BulkInsert", devi non stai usando questo modello, né dovresti nascondere i dettagli di implementazione. Il punto è che dovresti avere solo bisogno di un'istanza di classe Data.
Spero che risponda alla tua domanda!