¿Cómo debo implementar un proyecto de librería simple en Java? ¿Qué clases debo incluir?

El hecho de que no ha cumplido con los requisitos descritos en el párrafo 2 aquí: la respuesta de Sergey Sychyov a ¿Qué se supone que debo hacer para resolver este ejercicio de programación (ver los detalles)?

El problema aquí no está en la cantidad de tablas en su base de datos, sino en el enfoque en sí. Estás escribiendo un programa único.

¿Qué hará cuando haya nuevos requisitos (siempre aparecen en el desarrollo de software), por ejemplo, agregar el descuento que se aplica con la compra de libros del autor determinado.

¿Y qué pasa si necesita introducir la noción de “género” para que el comprador pueda elegir libros sobre ciencia ficción (historia, biología, etc.) escritos en un año determinado y con un precio que no supere los $ 9.

Como hay libros digitales y en papel, su Cliente, por supuesto, querrá especificarlo. Y debido a que hay diferentes formatos de libros electrónicos (epub, pdf, etc.), estas propiedades también deben especificarse. Los libros de papel tienen diferentes portadas (duras, blandas).

Por eso, cada vez que su Cliente potencial quiere mejorar el producto, su estructura se vuelve confusa para él. Cada modificación requerirá mucho esfuerzo y aún más, su código de Java tendrá que ser reescrito después de cada modificación. Terminarás escribiendo un nuevo programa cada vez.

Debe almacenar sus propiedades de manera que cada vez que agregue una nueva entidad, su código permanezca igual. Esta será la mejor práctica.