Desafio boas praticas#19
Conversation
vueda
left a comment
There was a problem hiding this comment.
Parabéns por se dedicar em resolver o desafio!
Deixei alguns comentários no pull request para você dar uma olhada.
Outro ponto que vale a pena dar uma olhada é na parte de testes, principalmente em testes que vão garantir que dado uma bebida selecionada o preparo e processo ocorre com sucesso.
| @@ -0,0 +1 @@ | |||
| /.metadata/ | |||
There was a problem hiding this comment.
Pode adicionar os arquivos .class ao .gitignore também
|
|
||
| public class AguaQuente implements Bebida { | ||
|
|
||
| private double preco; |
There was a problem hiding this comment.
Você não precisa desses atributos aqui, já que não está utilizando eles e sim os getters definidos na interface. O mesmo vale para as classes que representam outras bebidas.
| private double preco; | ||
| private int aguaConsumida; | ||
|
|
||
| public AguaQuente(int pedidoBebidaUsuario) { |
There was a problem hiding this comment.
O mesmo vale pra esse int no construtor (acredito ser o id da bebida selecionada), como você não está utilizando ele não precisa ter.
| int iniciarEscolha; | ||
|
|
||
| Scanner pedidoInicial = new Scanner(System.in); | ||
| System.out.println("Ol�, escolha uma das op��es abaixo\n" + "1 - Adicionar cr�ditos\n" + "2 - Realizar pedido"); |
There was a problem hiding this comment.
Encapsular essas chamadas de System.out pode ser uma boa ideia. Se em algum momento for necessário refatorar o sistema para alterar a forma como as mensagens são imprimidas, já estaria tudo centralizado em um lugar.
| } | ||
|
|
||
| public void preparaBebida(Credito credito, ReservatorioAgua reservatorio) { | ||
| } |
There was a problem hiding this comment.
Os métodos de preparar bebida não deveriam imprimir as mensagens do preparo (os ingredientes sendo utilizados)?
| } | ||
|
|
||
| public void setValorCredito(double valorCredito) { | ||
| this.valorCredito++; |
There was a problem hiding this comment.
Aqui você só está incrementando o valor em um. Acho que aqui você queria somar o valor de crédito atual com o valor recebido.
| this.valorCredito++; | ||
| } | ||
|
|
||
| public InputStream adicionaCredito(Credito credito) { |
There was a problem hiding this comment.
O método está sempre retornando null, então não tem motivo para o retorno ser InputStream. Se ele não precisa retornar nada ele pode ser void.
| InputStream valorCredito = input.adicionaCredito(input); | ||
|
|
||
| input.adicionaCredito(input); | ||
| input.calculaTroco(0, input); |
There was a problem hiding this comment.
Seria importante ter um assert pra esse teste
|
|
||
| public class ReservatorioAgua { | ||
|
|
||
| private int nivelAgua; |
There was a problem hiding this comment.
Pela forma como está sendo utilizado o nivelAgua e reservatorio parecem ser a mesma coisa. Acho que poderia ter só um dos dois.
| valorCredito -= valorBebida; | ||
| credito.setValorCredito(valorCredito); | ||
|
|
||
| Scanner troco = new Scanner(System.in); |
There was a problem hiding this comment.
A ideia de centralizar a lógica de ler dados do usuário em uma outra classe também pode ser uma boa ideia, pelo mesmo motivo de isolar o System.out
No description provided.