Dúvida sobre boas práticas

Srs (a),

Tenho uma classeB que quando instanciada ela precisa de dados de uma classeA para preencher alguns atributos seus.
A boa pratica ensina que é melhor:

Passar um objetoA para o construtor de B?

public class ClasseB {
	private int item1;
	private String item2;
        // ...

	public ClasseB(ClasseA objA){
		this.item1 = objA.getCode();
		this.item2 = objA.getNome();
	}

ou usar setters?

//...
ClasseB objB = new ClasseB();
objB.setItem1(objA.getCode());
objB.setItem2(objA.getNome());

Desde já agradeço.

:shock: Eu não sei!

Mas passaria o objeto como parâmetro no construtor…

Depende a pergunta principal é

Ela poderá ser alterada ou uma vez passada tem que ser ela até a classe B morrer?

se ela não puder ser alterada coloque apenas no construtor se não, faça um construtor para receber ela e ainda os metodos get/set

[quote=r2112]Srs (a),

Tenho uma classeB que quando instanciada ela precisa de dados de uma classeA para preencher alguns atributos seus.
A boa pratica ensina que é melhor:

Passar um objetoA para o construtor de B?

public class ClasseB {
	private int item1;
	private String item2;
        // ...

	public ClasseB(ClasseA objA){
		this.item1 = objA.getCode();
		this.item2 = objA.getNome();
	}

ou usar setters?

//...
ClasseB objB = new ClasseB();
objB.setItem1(objA.getCode());
objB.setItem2(objA.getNome());

Desde já agradeço.
[/quote]

A diferença básica é que passando pelo construtor você tem um objeto imutavél enquanto usando setters, não.
Um exemplo disso é a classe String. Vai de sua análise, conforme o leonardobhbr ilustrou.