Pergunta

Eu li muito sobre o DTO aqui sobre ISSO, em livros e artigos, mas não tenho certeza se eu entendi direito.

Estamos usando DTO do nosso projecto, de modo a que eles estão quase que apenas as propriedades de Objetos de Domínio.Por essa razão, precisamos ter um complexo DTO estrutura.Há algumas classes estendendo-se um ao outro, composição, agregação, etc..

A pergunta é mais geral.

É de direito a herdar um dto do outro ou ter uma referência sobre um dto em outro dto?

Foi útil?

Solução

É de direito a herdar um DTO do outro

Se eles compartilham propriedades comuns e, em seguida, por que não?

ter uma referência em um DTO para outro DTO

Definitivamente há nada de errado com isso, considere o seguinte:

public class UserDto
{
    public string Id { get; set; }
    public string Username { get; set; }
    public string Email { get; set; }
    public AddressDto Address { get; set; }
}

public class AddressDto
{
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
}

Lembre-se DTO são simplesmente mudo objetos i.e.eles não têm comportamento diferente de obter/definir seus próprios dados).As mesmas regras se aplicam para DTO como eles iriam para o padrão de classes/objetos a partir de um ponto de vista arquitetônico, então não há nenhuma razão porque você não deve seguir os mesmos princípios se e quando pode.

Outras dicas

dto é para comunicação entre camadas.

Eu prefiro DTOS simples porque eles são usados principalmente para informar a camada de persistência, geralmente falando objetos de acesso a dados, o que armazenar.Se esse é o caso, não vá para DTOS complexos.

Se os DTOS forem complexos (isto é, uma dto com outro dto como atributo), a complexidade necessária para a DAO armazenar os dados é maior.Isso conflita o objetivo do DAO para ser o caminho para desacoplar de tecnologia de armazenamento.

Então, se um DTO precisar resolver outro DTO, basta usar IDs de string como atributos e manter um DAO simples para cada dto.Lógica para lidar com DTOS interconectados deve ir para o aplicativo de serviço ou objeto de negócios fazendo uso do DAOS.Desta forma, você aumenta a reutilização do código.

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