📚 A sophisticated Library Management System designed in Java while following the concepts of decoupled layers (entities) and minimal code in interface (GUI).
En la clase Book, en el método makeHoldRequest() que permite a un usuario solicitar un libro que está prestado actualmente, se podría modelar la lógica de notificaciones utilizando Observer. Se definiría un sujeto observable HoldRequestSubject y observers HoldRequestObservers, de forma que cada vez que se registra una nueva solicitud de préstamo a través de makeHoldRequest(), el subject publica esa información para que todos los observers sean notificados. De esta manera, si en el futuro se necesita modificar o agregar nuevas formas de notificar solicitudes de préstamos u otros eventos, se pueden crear nuevos observers sin impactar la clase Book.
En la clase Book, en el método makeHoldRequest() que permite a un usuario solicitar un libro que está prestado actualmente, se podría modelar la lógica de notificaciones utilizando Observer. Se definiría un sujeto observable HoldRequestSubject y observers HoldRequestObservers, de forma que cada vez que se registra una nueva solicitud de préstamo a través de makeHoldRequest(), el subject publica esa información para que todos los observers sean notificados. De esta manera, si en el futuro se necesita modificar o agregar nuevas formas de notificar solicitudes de préstamos u otros eventos, se pueden crear nuevos observers sin impactar la clase Book.