Quiero crear una mini-aplicación en Java que simula una biblioteca. He creado una clase llamada Book
que los siguientes atributos:
public class Book {
private final String ISBN;
private String title;
private String author;
private String domain;
private int numberOfPages;
}
Quiero añadir dos atributos más: Stock y precio . Pero estos atributos no están directamente relacionados con un libro de verdad (como ISBN o título ), así que no sé exactamente dónde agregar ellas: en Book
o en otra clase ...
Una idea sería crear una nueva clase llamada BookView
(no estoy seguro si es el mejor nombre) y añadir los atributos de esta manera:
public class BookView {
private Book book;
private short stock;
private float price;
}
Otra idea sería la de extender el Book
y crear una BookWithDetails
clase hija que añade el caldo y el precio, pero no estoy seguro de la herencia viene muy bien para este escenario:
public BookWithDetails extends Book {
private short stock;
private float price;
}
¿Cuál es el mejor enfoque para situaciones como estas?
En su escenario, parece que la creación de una clase a similares BookView
, como se muestra en su puesto, sería la mejor opción:
public class BookManager {
private short stock;
private float price;
private Book book;
}
De esta manera, la clase gestor mantiene la información adicional sobre el precio y la cantidad del libro separado del mismo libro real.
Debido a que los campos se declaran como private
, se debe añadir métodos setter y getter para recuperar los valores de los campos. Como un ejemplo de algunos métodos getter:
public short getStock() {
return stock;
}
public float getPrice() {
return price;
}
public Book getBook() {
return book;
}