Domanda

Fondamentalmente scrivo un programma che copia / sposta file dal file system locale ad un file system remoto oltre un certo tipo FTP protocollo.

sarebbe un approccio buono per incapsulare i bit protocollo specifici all'interno dell'interfaccia del file system provider di servizi?

Per quanto mi pare di capire che avrebbe fatto il mio lavoro in biblioteca con le altre applicazioni che utilizzano il nuovo IO API, giusto?

È stato utile?

Soluzione

Sembra che si sta pensando di creare una classe RemoteFileSystemProvider specificamente per il file system remoto. Questa classe avrebbe specchio FileSystemProvider, fornendo funzionalità simili a l'accesso al file system remoto che si sta utilizzando. Se questo è qualcosa che il progetto o la squadra può ottenere l'uso ripetuto da allora vale la pena di riflettere l'oggetto FileSystemProvider durante la creazione del codice. Questo permette a chiunque familiarità con il pacchetto java.nio.file può facilmente capire come usare il vostro.

Tenete a mente, tuttavia, che FileSystemProvider per sé non è conforme a tutte le interfacce o estendere tutte le classi all'interno del pacchetto. Si tratta di un punto di ingresso, e la classe sarebbe anche un punto di ingresso. Tuttavia, se si ha imitato la struttura di metodo, si sarebbe generando Channel oggetti a leggere e scrivere, che sarebbe conforme alle specifiche java.nio che potrebbero essere riutilizzati. Ciò consentirebbe di qualsiasi codice che sa come lavorare con i canali per essere in grado di lavorare con i canali generati dal provider di file system remoto.

Il mio primo passo nella costruzione di qualcosa di simile a questo, però, sarebbe quello di costruire solo un pacchetto specifico per questo file system remoto. Sarebbe gestire tutte le comunicazioni e implementare le funzioni di base come getUploadChannel, getDownloadChannel, renameRemoteFile, copyRemoteFile, deleteRemoteFile, e qualunque altra funzionalità è necessario. Questo vi darà una buona interfaccia buon senso definito per questo specifico file system e la sua funzionalità. Questo pacchetto può essere utilizzato in qualsiasi contesto per implementare un semplice collegamento a questo file system. Se si assicurarsi che questo usi degli oggetti canali di caricare e scaricare file, allora sarà pronto a integrarsi con qualsiasi API che utilizza java.nio.

Solo dopo questo è stato completato, testato e di lavoro, sarebbe considero quale interfaccia mi piacerebbe imitare o implementare per la consegna al resto della squadra. Questo farà sì che eventuali modifiche al protocollo file system remoto o alle API java avranno un impatto minimo sul sistema complessivo.

Altri suggerimenti

Vorrei scendere e sporco e utilizzare il FTP-come protocollo. Il problema di attuazione API di basso livello over API di alto livello è che si mascherare tutti i veri costi e rendere le cose facili, che sono di fatto estremamente difficile, o costoso. Considerare seek (), per esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top