Qual é a melhor abordagem de design para atributos que não estão diretamente relacionadas a uma entidade?

Revnic Robert-Nick:

Eu quero criar um mini-aplicativo em Java que simula uma biblioteca. Eu criei uma classe chamada Bookque os seguintes atributos:

public class Book {
    private final String ISBN;
    private String title;
    private String author;
    private String domain;
    private int numberOfPages;
}

Quero adicionar mais dois atributos: estoque e preço . Mas estes atributos não estão diretamente relacionados com um livro real (como ISBN ou título ), então eu não sei exatamente onde adicionar-las: dentro Bookou em outra classe ...

Uma idéia seria a criação de uma nova classe chamada BookView(não sei se é o melhor nome) e adicionar os atributos como este:

public class BookView {
    private Book book;
    private short stock;
    private float price;
}

Outra idéia seria a de estender o Booke criar uma BookWithDetailsclasse filha que adiciona o estoque eo preço, mas não tenho certeza a herança vem a calhar para este cenário:

public BookWithDetails extends Book {
    private short stock;
    private float price;
}

Qual é a melhor abordagem para situações como estas?

0xCursor:

No seu cenário, parece que a criação de uma classe para semelhante BookView, como mostrado no seu post, seria a melhor opção:

public class BookManager {
    private short stock;
    private float price;
    private Book book;
}

Desta forma, a classe gestor mantém a informação extra sobre o preço ea quantidade do livro separado do próprio livro real.

Porque os campos são declarados como private, você deve adicionar métodos setter e getter para recuperar os valores dos campos. Como um exemplo de alguns métodos de adsorção:

public short getStock() {
    return stock;
}

public float getPrice() {
    return price;
}

public Book getBook() {
    return book;
}

Acho que você gosta

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