Estoy creando un programa de biblioteca. ¿Debo transferir objetos enteros como libros o sus punteros?

En mi programa, los libros son objetos y estos libros se guardan en un objeto de estante que se guarda en un objeto de biblioteca. Dentro del objeto del estante, tengo un libro de "referencia" que dice qué libro tiene el estante. Pero también tengo un ArrayList que contiene instancias separadas del libro de "referencia". De nuevo, contiene muchas variables de referencia que hacen referencia a objetos únicos, no todas ellas hacen referencia al libro de "referencia".

Entonces, mi pregunta es ... Al transferir un libro a un usuario, ¿debo transferir cada variable de referencia única al usuario y eliminar la variable de referencia de la lista? o ... ¿Debo descartar la lista y simplemente copiar los punteros del libro de "referencia" a los usuarios?

Nota: Un estante tiene un número determinado de libros que se pueden eliminar de él. Me doy cuenta de que la primera opción sería un desperdicio de memoria. Además, en la segunda opción, solo estaría haciendo un seguimiento de la cantidad de libros que quedan con una variable int. No estaría siguiendo la cantidad de objetos de libros que posee ese estante.

Respuestas a la pregunta(0)

Su respuesta a la pregunta