Una cosa que siempre me ha molestado en Java es:clases públicas Java con clases privadas dependientes
¿Cómo se crea una sola clase pública que debe ser utilizado por los consumidores aguas abajo pero luego organizar bien las clases de los que depende en paquetes?
Por ejemplo (algo inventado), tengo una clase UserDao que se basa en LdapPersistenceHelper y DBPersistenceHelper. La clase UserDao está en un paquete llamado com.company.dao y me gustaría que los dos asistentes vivan en un paquete llamado com.company.dao.persistencehelper. Sin embargo, no quiero hacer que los dos ayudantes sean lo suficientemente genéricos como para que puedan ser utilizados por otros. ¿Cómo hago eso? Si hago que los ayudantes estén "protegidos" (realmente, no hay ningún modificador), entonces no puedo acceder a ellos desde el UserDao. Si los hago públicos, alguien más podría usarlos.
interesante, no había pensado en usar OSGI para resolver este problema – silk