Estoy trabajando duro en el empaquetado de una API para el consumo público. Como tal, trato de limitar los métodos que están expuestos solo a aquellos que deseo que sean públicos y compatibles. Debajo de esto, por supuesto, hay una multitud de métodos de acceso limitado.¿Deberían mis clases API internas ser todo en un solo paquete?
El problema es que tengo un montón de código interno que necesita acceder a estos métodos restringidos sin hacer públicos esos métodos. Esto crea dos problemas:
- No puedo crear interfaces para comunican entre clases ya que esto haría que estos mis métodos internos públicas.
- No puedo acceder a los métodos protegidos o predeterminados a menos que ponga la mayoría de mis clases internas en el mismo paquete .
Por lo tanto, tengo alrededor de 70 u 80 clases internas en paquetes segregados limpiamente PERO con modificadores de acceso excesivamente permisivos. ¿Diría que un solo paquete es el menor de dos males o hay una mejor manera de poder enmascarar mis métodos internos mientras se mantienen paquetes más granulares?
Estaría interesado en conocer las mejores prácticas aquí.
ya estoy al tanto de This
Creo que la pregunta es un poco subjetiva: personalmente, no me gustan las decisiones de diseño que conducen a una organización interna deficiente, como el caso de todas las clases en un solo paquete. Pero la forma correcta de hacer tales cosas no se viene a la mente en este momento. – incarnate