Eu quero criar um mini-aplicativo em Java que simula uma biblioteca. Eu criei uma classe chamada Book
que 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 Book
ou 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 Book
e criar uma BookWithDetails
classe 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?
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;
}