Manipolazione dei dati per un singolo file

0

Sto cercando una soluzione best practice per la creazione di un oggetto la cui responsabilità è gestire l'archiviazione dei file per un singolo file. Voglio essere in grado di leggere i dati dal file, scrivere sul file, eliminare il file ecc.

Ho visto il pattern del repository in uso ma sembra essere una soluzione per la gestione di più file. Immagino di creare un oggetto che prende il nome dal file che rappresenterà, in questo caso RenderOutput (o simile), che ha funzioni come .delete () che non rivelano nulla su COME eliminano o DOVE è archiviato il file . Ciò significa che non importa da fuori come il file è persistito.

La mia domanda è se esiste o meno un modello o qualcosa che posso seguire per nominare, responsabilità, funzionalità ecc.

    
posta chrisheseltine 02.09.2015 - 13:25
fonte

1 risposta

0

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!

    
risposta data 03.09.2015 - 08:25
fonte