Onde pedir os parametros?

Em que situações devo pedir parâmetros pelo construtor e em que situações devo pedir directamente no método?

Na teoria é basicamente isso:

Um construtor diz o que é necessário para a criação do objeto, ou seja, sem aqueles parâmetros do Construtor o objeto não funcionaria

Exemplo:

public Carro(Motor motor, List<Rodas> rodas, Volante volante) {
...
}

Um carro do ano atual (2018) não funciona sem os parâmetros do construtor, então não faria sentido criar um construtor sem esses parâmetros ou sem nenhum parâmetro.

Já um aerofolio ou neon são opcionais, logo não precisa de um construtor que recebe um aerofolio ou neon, ou seja, caso você queira colocar um aerofolio ou um neon, você colocaria através dos métodos setAerofolio e setNeon.

Na prática:
Alguns Frameworks e/ou APIs precisam que a sua classe tenha um construtor padrão (sem parâmetros) para funcionar, logo você poderia criar um objeto carro sem os requisitos dele (motor, rodas e volante).

Eu raramente crio um construtor :joy:

1 curtida

Nao tem mistério, vai de acordo com a real necessidade. Se realmente vai fazer algo dentro do construtor que dependa de um parâmetro, então já tem a resposta.

Tem a questão teórica/acadêmica que o @Mike mostrou bem, mas na prática eu também não sigo. Pra mim Motor, Rodas e Voltante seriam propriedades publicas de Carro.

1 curtida