Tengo una clase de modelo (MVC pattern) que estoy usando en dos proyectos de Eclipse.accediendo a campos privados del paquete en clases compartidas en proyectos de Eclipse
Un proyecto, llamémoslo Producer
, está capturando datos de una secuencia y almacenándolos en una base de datos. La clase de modelo en cuestión, digamos ObjectModel
, se usa para deserializar la secuencia para su manipulación antes de serializarla y almacenarla en la base de datos.
Otro proyecto, llamémoslo Consumer
, está extrayendo los datos almacenados en la base de datos y visualizándolos en la pantalla. Utiliza la misma clase de modelo para deserializar los datos almacenados para usar en la aplicación de visualización.
Planeé poner ObjectModel
en un proyecto de Eclipse para compartir su fuente a través de los proyectos Producer
y Consumer
. Sin embargo, cada aplicación tiene clases actualmente en el mismo paquete que aprovechan el modificador de acceso privado del paquete para obtener y establecer campos en ObjectModel
.
¿Hay alguna forma de compartir fuentes en varios proyectos de Eclipse y aún mantener el acceso privado del paquete con la fuente compartida?
ACTUALIZACIÓN: Estaba teniendo problemas para obtener el código compartido en proyectos de Eclipse, por lo que no lo intenté antes de publicarlo. Finalmente conseguí esa parte funcionando, y la escribí como otra respuesta here.
¿Puedes explicar por qué quieres 'mantener aún el acceso privado del paquete con la fuente compartida?'? – Vikdor
'Producer' tiene una clase,' ObjectModelFactory', que crea instancias 'ObjectModel' que encapsulan datos de múltiples flujos distintos. 'Consumer' tiene una clase,' ObjectModelMerger', que combina actualizaciones activas en 'ObjectModel's deserializados. Es mucho mejor para cada una de estas clases acceder directamente a los campos 'ObjectModel' que pasar por los descriptores de acceso, sobre todo porque no hay necesidad de programadores en ninguna parte de los programas, excepto' ObjectModelFactory' y 'ObjectModelMerger' - Me gustaría restringir acceso a la configuración de los campos 'ObjectModel'. – ericsoco