2
respostas

Dúvida Praticando Test-Driven Development (TDD) Aula 3 - 3 Praticando TDD

Boa noite.

Na verdade não é uma dúvida gostaria de saber a opinião de vocês. Não faria mais sentido a quantidade de lances estar na classe "Usuario", e incrementar o contador na instanciação de um lance? Com isso não precisaríamos o for abaixo:

int total = 0;
        for(Lance l : lances) {
            if(l.getUsuario().equals(lance.getUsuario())) total++;
        }

Gosto de ouvir a opinião de outras pessoas.

Muito obrigado.

2 respostas

Olá, Jorge!

É uma boa questão: quem deve calcular a quantidade de lances? o próprio usuário ou o leilão.

A sua solução foi boa porque não precisou que o usuário soubesse de outros lances e não precisa desse for.

Eu, particularmente, iria com a sua solução! Parabéns!

Olá, é uma questão a se pensar.

Conforme a questão levantada pelo Alexandre, "quem deve calcular a quantidade de lances?" ou seja, com quem que esta a responsabilidade dessa regra de negócio.

A classe Usuario é apenas um modelo de entidade que carrega as características do usuário. Já a classe Leilao representa no negócio, na qual tem as regras definidas do leilão, logo acredito que o melhor lugar continua sendo na classe Leilao junto com as demais regras.

Se a classe Usuario ficar com a resonsabilidade de contabilizar e passar a informação para a classe Leilao, a validação que utiliza esta informação fica comprometida, pois a classe Usuario poderia retornar o valor que quise-se e o Leilao não conseguiria garantir a integridade da validação.