Pergunta

Seu frequentemente um requisito para ter um objeto de domínio exibido em várias maneiras na UI; listas, resultados de pesquisa, visualizar e editar páginas, bem como em cabeçalhos, rodapés e popups. Normalmente você tem várias "vistas" diferentes do objeto de domínio, cada um com diferentes campos exibidos.

A maioria dos conselhos parece ser a de usar um DTO para obter os dados quando você precisar de um subconjunto ou superconjunto. Há uma grande quantidade de sobrecarga na manutenção DTOs. É uma má abordagem de simplesmente preencher as propriedades do objeto de domínio necessário para cada cenário. Por exemplo, você pode usar um perfil de dizer que propriedades devem ser incluídos, por exemplo:

service.GetDomainObjects (int ListId, Profile.ListProfile); service.GetDomainObjects (searchParam corda, Profile.SearchProfile);

Foi útil?

Solução

Para mim o que este vem para baixo é onde você quer que a sobrecarga de ser, ou você vai ter um conjunto de diferentes classes para representar seus DTOs, ou você vai ter um conjunto de métodos que cada retorno o mesmo domínio objeto, mas com diferentes campos de ser 'hidratado'.

Um par de perguntas que eu gostaria de pedir a ajuda a tomar a decisão são:

  • o que é a sobrecarga na hidratação todo o objeto? É a complexidade adicional (de DTOs ou objetos parcialmente hidratado) realmente vale a pena?
  • é qualquer outra pessoa vai estar usando seu código? Você não fazer para confundir as pessoas com objetos paritally hidratados, DTOs pode ser mais claro quando as pessoas vêm para manter seu código.

Eu tenho uma ligeira preferência pessoal para DTOs como eu sinto a manutenção a longo prazo de seu sistema será mais fácil. Se a sua banda de um homem, ou este é um fora de jogar fora aplicativo, eu posso totalmente compreender não querendo introduzir um monte de aulas extras que atravancam seu código.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top