Tengo una aplicación Java y me gustaría que sea extensible. Para crear una extensión, los desarrolladores de nuestra empresa escribirán una clase Java que implemente una determinada interfaz. También pueden querer escribir clases auxiliares asociadas. Me gustaría cargar estas extensiones en la aplicación sin una interrupción.¿Cómo otorgar diferentes permisos a varias clases de Java?
me gustaría limitar lo que esta clase puede hacer a los siguientes:
- métodos de llamadas en la API de la aplicación (esto será un parámetro al constructor)
- crear instancias de otros objetos dentro del mismo paquete (para que el autor de la clase de extensión pueda usar otras clases para realizar el trabajo).
Cuando se invoca la clase, el objeto API que se transfiere ya tendrá un "cliente" definido y almacenado como una variable miembro. Utilizará esto para limitar el acceso a través de la API a los datos de ese cliente.
No quiero que estas clases hagan cosas como acceder a la base de datos, escribir en un disco o hacer cosas de otra manera. Esto es principalmente un esfuerzo de administración de la dependencia y encapsulamiento ya que el mismo equipo de desarrolladores tendrá acceso para escribir extensiones y el sistema central.
¿Hay un patrón para esto? ¿Estoy en el camino correcto?