El patrón Registry establece un mecanismo centralizado para almacenar y recuperar objetos e instancias de servicios utilizados a lo largo de una aplicación.
Funciona como un contenedor global, o un registro, que mantiene referencias a varios objetos, permitiendo que cualquier parte de la aplicación acceda a estos objetos de manera fácil y directa sin necesidad de mantener múltiples copias o referencias distribuidas.
Este patrón es especialmente útil en situaciones donde varios componentes o módulos de una aplicación necesitan compartir acceso a objetos comunes o servicios, como conexiones a bases de datos, configuraciones, o servicios de logística.
Utilizar un Registry ayuda a evitar la necesidad de pasar objetos a través de múltiples capas o componentes.
public class Registro {
private static Map servicios = new HashMap<>();
public static void agregarServicio(String clave, Object servicio) {
servicios.put(clave, servicio);
}
public static Object obtenerServicio(String clave) {
return servicios.get(clave);
}
}
// Uso del Registry
Registro.agregarServicio("miServicio", new MiServicio());
MiServicio servicio = (MiServicio) Registro.obtenerServicio("miServicio");
El patrón Registry ofrece una solución práctica para gestionar y acceder a objetos comunes dentro de una aplicación mediante un punto centralizado.
Mientras que este patrón puede simplificar el acceso a recursos compartidos y reducir el acoplamiento, es importante usarlo con precaución para evitar crear un punto de dependencia masivo que pueda complicar el diseño y mantenimiento de la aplicación.