Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desafio boas praticas #19

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

gabrieltrudes
Copy link

No description provided.

Copy link
Member

@vueda vueda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pode adicionar os arquivos .class ao .gitignore também


public class AguaQuente implements Bebida {

private double preco;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) {
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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++;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seria importante ter um assert pra esse teste


public class ReservatorioAgua {

private int nivelAgua;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants