Este programa representa un sistema de biblioteca que permite registrar y prestar libros. Usa el patrón Singleton para mantener una sola instancia del sistema y el patrón Object Pool para controlar los libros y sus estados (disponible, prestado o en mantenimiento). Ambos patrones ayudan a mantener el código organizado y a manejar los recursos de forma eficiente.