ImaginarTI

domingo, 7 de junho de 2009

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;


... 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;


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,

Leo Zacche

Marcadores: , , , ,

0 Comentários:

Postar um comentário

Assinar Postar comentários [Atom]



<< Página inicial