¿Cuál es el mejor enfoque para el diseño de atributos que no están directamente relacionada con la entidad?

Revnic Robert-Nick:

Quiero crear una mini-aplicación en Java que simula una biblioteca. He creado una clase llamada Bookque 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 Booko 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 Booky crear una BookWithDetailsclase 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?

0xCursor:

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;
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=190322&siteId=1
Recomendado
Clasificación