Ho una classe modello (MVC pattern) che sto utilizzando in due progetti Eclipse.accesso ai campi pacchetto-privato in classi condivise tra i progetti Eclipse
Un progetto, chiamiamolo Producer
, sta acquisendo i dati da un flusso e li archivia in un database. La classe del modello in questione, ad esempio ObjectModel
, viene utilizzata per deserializzare il flusso per la manipolazione prima di serializzare e archiviare nel db.
Un altro progetto, chiamiamolo Consumer
, sta inserendo i dati memorizzati nel database e visualizzandolo sullo schermo. Utilizza la stessa classe del modello per deserializzare i dati memorizzati per l'utilizzo nell'applicazione di visualizzazione.
ho pensato di mettere ObjectModel
in un progetto Eclipse per condividere la sua fonte attraverso i progetti Producer
e Consumer
. Tuttavia, ciascuna applicazione dispone attualmente di classi nello stesso pacchetto che sfruttano il modificatore di accesso privato al pacchetto per ottenere e impostare i campi in ObjectModel
.
C'è un modo per condividere l'origine tra più progetti Eclipse e mantenere l'accesso privato al pacchetto con l'origine condivisa?
UPDATE: Avevo problemi a ottenere il codice condiviso tra i progetti Eclipse, motivo per cui non l'ho provato prima di postare. Finalmente ho capito che funzionava e l'ho scritto come un'altra risposta here.
puoi approfondire il motivo per cui vuoi 'mantenere ancora l'accesso privato al pacchetto con la fonte condivisa?'? – Vikdor
'Producer' ha una classe,' ObjectModelFactory', che crea istanze di 'ObjectModel' che incapsulano dati da più stream distinti. 'Consumer' ha una classe,' ObjectModelMerger', che unisce gli aggiornamenti live in 'ObjectModel' deserializzati. Molto più bello per ognuna di queste classi accedere direttamente ai campi 'ObjectModel' piuttosto che passare attraverso gli accessor, in particolare perché non c'è bisogno di setter in nessuna parte dei programmi eccetto' ObjectModelFactory' e 'ObjectModelMerger' - Mi piacerebbe limitare accesso all'impostazione dei campi 'ObjectModel'. – ericsoco