Lançar exceção no construtor da classe

10/05/2017

0

Olá pessoal, beleza?

Pensando em uma classe pessoa que contém idade, altura e peso, vocês fariam a validação de cada campo nos setters com um construtor vazio ou passando os parâmetros no construtor lançando uma exceção caso falhe? Essa classe será usada por uma calculadora de IMC, que implementa a fórmula idade/altura*altura. Dependendo a idade da pessoa, o valor do IMC vai determinar se ela está abaixo, acima ou no peso. Sendo assim, a altura não pode ser zero ou geraria um erro de divisão. A idade e o peso não podem ser negativos, ou a calculadora se comportará de forma inesperada.

E agora? Como modelar o sistema e validar os dados?
Estevão Dias

Estevão Dias

Responder

Posts

12/06/2017

Joel Rodrigues

Fala, Estevão. Beleza?

Neste caso, se tratando de uma calculadora de IMC, eu enxergo a classe Pessoa como um Value Object. Ou seja, um objeto que é identificado pelo conjunto de suas propriedades. Outra característica dos Value Objects é que eles são imutáveis, ou seja, alterar uma de suas propriedades já resultaria em um novo objeto. Por exemplo, para esse contexto uma pessoa com 20 anos, 1,80m e 90Kg é diferente de uma pessoa com 20 anos, 1,80m e 80Kg.

Sendo assim, eu ocultaria os setters e manteria os argumentos no construtor. E sim, lançaria exceção se os argumentos fossem inválidos.

Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar