Domanda

Ho letto molto sulla DTO è qui su così, in libri e articoli, ma non sono sicuro se lo capisco.

Usando DTO è nel nostro progetto in modo che siano quasi solo proprietà degli oggetti di dominio.Per questo motivo, dobbiamo avere una struttura di DTO complessa.Ci sono alcune classi che si estendono, composizioni, aggregate, ecc.

La domanda è più generale.

È giusto ereditare un DTO da un altro o avere un riferimento su un DTO in un'altra DTO?

È stato utile?

Soluzione

.

È giusto ereditare un DTO da un altro

Se condividono proprietà comuni, allora perché no?

.

Avere un riferimento in un DTO in un'altra DTO

Non c'è sicuramente nulla di sbagliato in questo, considera quanto segue:

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

Ricorda che DTO è semplicemente Dumb oggetti I. Non hanno comportamenti (diversi da ottenere / impostare i propri dati).Le stesse regole si applicano alla DTO come sarebbero per classi / oggetti standard da un punto di vista architettonico, quindi non c'è motivo per cui non dovresti seguire gli stessi principi se e quando è possibile.

Altri suggerimenti

DTO è per la comunicazione inter-strato.

Preferisco DTOS semplici perché sono utilizzati principalmente per dire al livello di persistenza, in generale gli oggetti di accesso ai dati di lingua, cosa conservare.Se è così, non andare per DTO complessi.

Se DTO sono complessi (cioè un DTO avente un altro DTO come attributo), la complessità richiesta per il DAO per memorizzare i dati è maggiore.Questo in conflitto l'obiettivo di DAO per essere il modo di disaccoppiare dalla tecnologia di stoccaggio.

Quindi, se un DTO ha bisogno di indirizzare un'altra DTO, basta utilizzare gli ID di stringa come attributi e mantenere un semplice DAO per ogni DTO.La logica per gestire DTO interconnessi dovrebbe andare all'applicazione di servizio o all'oggetto aziendale facendo uso del DAI.In questo modo, aumenti il riutilizzo del codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top