Aggregation X Delegation - round 2
De volta ao assunto do como montar objetos "compostos".
Como regra geral eu gosto bem mais da solução de Delegação. Acho mais elegante, mais conforme os princípios de OO, e de mais fácil compreensão também. Mas como eu já disse, isso é apenas minha opinião. E a sua, leitor, qual é?
É fato também, que a solução de Agregação tem lá o seu lugar ao sol. Por exemplo: como definir o DisplayMember e o ValueMember de um WinForm.ComboBox com objetos compostos? Algo como ...
cboMeuComboBox.ValueMember = oMeuObjeto.SubObjeto.Id;
cboMeuComboBox.DisplayMember = oMeuObjeto.SubObjeto.Descricao;
cboMeuComboBox.DisplayMember = oMeuObjeto.SubObjeto.Descricao;
... simplesmente não funciona. Nesse caso, eu acabo adotando a agregação, e fica mais ou menos assim:
cboMeuComboBox.ValueMember = oMeuObjeto.SubObjeto_Id;
cboMeuComboBox.DisplayMember = oMeuObjeto.SubObjeto_Descricao;
cboMeuComboBox.DisplayMember = oMeuObjeto.SubObjeto_Descricao;
Isso mesmo, agrego as propriedades de SubObjeto diretamente como propriedades em MeuObjeto. É estranho e poluído, mas funciona 100%.
Atualmente eu tenho preferido sempre a solução de Delegação. Mas nesses casos mais particulares, não tem jeito... uso mesmo a Agregação. E claro, isso só comprova a nossa velha teoria, que "não existe bala de prata".
Até a próxima,
Marcadores: aggregation, delegation, objetos, poo, silverbullet
0 Comentários:
Postar um comentário
Assinar Postar comentários [Atom]
<< Página inicial