Relacionamento de Classes

9 respostas
F

Boa Tarde,

Estou com uma duvida de relacionamento entre classes, e gostaria de uma ajuda.

Tenho uma classe chamada Estação.
Essa estação após realizar sua função deve criar uma classe chamada Item.
Na classe Item eu gostaria de uma referencia de qual estação a criou.

A questão é! Eu crio um atributo “String estacaoID” ou um Objeto Estação na classe Item?

9 Respostas

edufera10

posta aqui o seu código que isso é mole pra te ajudar…

W

cria um objeto estação na classe item e caso necessário cria uma lista de Itens na classe Estação

F

Usar só uma string ao invés do objeto estaria errado?

quikkoo

errao acho q não, porém é ,mais lógico usar o objeto e apartir dele pegar o nome da estação, e se vc precisar de outras informações em relação à estação vc já tem o objeto em fácil de se acessar

F

Obrigado a todos. Vou usar o objeto mesmo.

W

Não é o caso de estar errado, é que vc deve pensar na orientação a objeto, um objeto possui outro e não apenas o id do mesmo, vc consegue fazer usando apenas o id mas o ideal é utilizar o objeto, utilizando o jpa você vai perceber isso mais facilmente. de uma pesquisada sobre jpa

renzonuccitelli
Seguindo só o que foi falado:
public class Estacao {
	private String nome;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	Estacao(String nome) {
		super();
		this.nome = nome;
	}

	public Item create() {
		Item item = new Item();
		item.setEstacao(this);
		return item;
	}

	@Override
	public String toString() {
		return "Estacao [nome=" + nome + "]";
	}
}
public class Item {
	private Estacao estacao;

	public Estacao getEstacao() {
		return estacao;
	}

	public void setEstacao(Estacao estacao) {
		this.estacao = estacao;
	}
}
public class EstacaoTest {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Estacao est1 = new Estacao("Estação 1");
		Estacao est2 = new Estacao("Estação 2");
		Item item = est2.create();
		System.out.println(item.getEstacao());
		item = est1.create();
		System.out.println(item.getEstacao());
	}
}

Eu criaria uma interface para cada uma das classes de forma a fazer algum polimorfismo e tb pra facilitar os testes.

[]s

D

Pq vc colocou como super aqui ?

Estacao(String nome) {  //super nome
		super();
		this.nome = nome;
	}
quikkoo

deve ter sido a força de habito, ou geração automática de código da ide hehe
de qlqr forma, ñ interfere em nada, só vai achamar o construtor da classe Object, q está vazio

Criado 4 de outubro de 2010
Ultima resposta 5 de out. de 2010
Respostas 9
Participantes 6