Vínculo de classes

2 respostas
java
S

Classe Estado

class Estado { 
     private Long id; 
}

Classe Governador

class Governador { 
     private Long id; 
}

Classe Estado

class Estado { 
     private Long id; 
     private Governador governador;

Poderia inverter, ao invés de colocar o Tipo Governador na classe Estado, colocar um Tipo Estado na classe Governador ? Qual é a diferença e como sei qual Tipo colocar em qual Classe ?

2 Respostas

esmiralha

Sim, você poderia inverter.

A diferença é um bocado sutil e, de fato, tanto Estado pode conter uma referência para Governador, quanto o contrário. Ou a referência pode ser bidirecional. São todos designs válidos.

Qual é o mais correto? Depende… A relação bidirecional exige mais cuidado para que não haja perda de sincronia entre as duas pontas. Deve ser usada com cuidado.

Normalmente aquilo que é mais geral não deve depender daquilo que é mais específico. No caso, creio que Estado é um conceito mais geral que Governador.

Além disso, o Governador de um Estado pode mudar, mas não faz sentido dizer que o Estado de um Governador mudou.

Além disso, o Governador só existe, se existe um Estado para ele governar, já o Estado existe independente de um Governador.

Então, creio que Governador deva depender de Estado, ou seja, conter uma referência para o Estado que ele governa.

O que você acha?

S

Obrigado esmiralha, ajudou bastante.

Criado 9 de maio de 2016
Ultima resposta 10 de mai. de 2016
Respostas 2
Participantes 2