Persistere come XML utilizzando la classe del modello o creare una classe autonoma

0

Negli ultimi due anni ho scritto un programma per l'ordinamento e l'elaborazione delle immagini per il nostro laboratorio, utilizzando JavaFX.

La classe Project contiene tutte le informazioni: raccolte di Images , Tags , Labels ecc., nonché le impostazioni di elaborazione. Ogni Image contiene nomefile, metadati, raccolte di Tags e Labels ecc.

Quasi tutti i valori sono osservabili ( SimpleObjectProperty ecc.) e sono associati direttamente alla vista. Anche Project viene mantenuto su disco come file XML utilizzando le annotazioni pertinenti.

Questo crea problemi quando viene caricato un nuovo Project - come aggiornare i binding?

Il mio metodo attuale è deserializzare un nuovo oggetto Project , quindi aggiornare tutti i binding nel controller per puntare alle nuove collezioni e proprietà. In JavaFX è più semplice fare associazioni nel codice, quindi ho già un metodo per creare i bind e quindi lo eseguo di nuovo.

Ma ultimamente ho pensato che sarebbe stato meglio usare una classe ausiliaria per serializzare / deserializzare Project e quindi copiare ogni proprietà / raccolta in un singolo oggetto Project che viene istanziato una sola volta.

Esiste una best practice per questo in Java? Ci sono dei vantaggi per entrambi i metodi? Una preoccupazione nel metodo corrente Project cambia e quindi ogni riferimento ad esso deve essere aggiornato. Per ovviare a questo ho creato una classe Supervisor con un metodo getProject e invece di passarla.

Presto dovrò fare la stessa cosa in un'applicazione WPF. Esistono differenze tra l'associazione XAML WPF e l'associazione JavaFX che rende un metodo più adatto?

    
posta geometrikal 11.07.2018 - 11:21
fonte

0 risposte

Leggi altre domande sui tag