Estava pensando nestes sistemas tipo o orkut. E fiquei numa dúvida sobre como deveria modelar.
Uma das dúvidas que tive foi a respeito de "o usuário recebe e envia depoimentos". Bem, está certo que teríamos uma classe assim (acho):
public class Depoimento {
Usuario de;
Usuario para;
Date data;
String texto;
}
Mas fiquei pensando… E a classe Usuario? Acho que nao faz parte do conceito de usuario e nao tem nada a ver com suas responsabilidades os depoimentos. Tipo, acho que nao deveriamos ter nem um atributo chamado depimentos ou pior ainda, dois atributos: depoimentosEnviados e depoimentoRecebidos.
O que voces acham deste problema? Como resolveriam?
Na UML eu até que poderia fazer algo tipo:
_________ para enviadas ____________
|Usuario| <--------------> |Depoimento|
|-------| |----------|
| | <--------------> | |
| | de recebidas | |
--------- ------------
Mas eu não implementaria assim:
public class Usuario {
Collection depoimentos;
String nome;
}
e nem assim:
public class Usuario {
Collection depoimentosEnviados;
Collection depoimentosRecebidos;
String nome;
}
Eu faria assim:
public class Usuario {
String nome;
}
Vocês acham o que disso?
Como vocês fariam no diagrama de classes e na implementação a questão de "o usuário tem um perfil"?
