Documentazione XML per le classi IoC

5

Sto lavorando a un'applicazione che utilizza Inversion of Control per ottenere un accoppiamento lento tra l'accesso ai dati e i livelli aziendali.

Avere un ILoanApplicationRepository e un LoanApplicationRepository, dove dovrei memorizzare i commenti XML che documentano i membri della classe? sull'interfaccia o sulla classe concreta? dovrei farlo su entrambi?

    
posta amhed 18.03.2013 - 22:33
fonte

3 risposte

10

Idealmente, entrambi. Nell'interfaccia, puoi descrivere il comportamento previsto dell'interfaccia e nella classe puoi descrivere il comportamento dell'implementazione .

Ovviamente, questa è una enorme quantità di overkill e duplicazione in molti casi, nel qual caso suggerirei documentare solo nell'interfaccia , principalmente perché nella maggior parte dei casi questo è ciò che sarebbe esposto in Intellisense.

La documentazione delle classi è davvero una preoccupazione solo se durante l'elaborazione interagirai sia con l'interfaccia che con le classi.

public interface ILoanApplicationRepository
{
    /// <summary>
    /// Gets the next available application ID.
    /// </summary>
    public int GetNextApplicationId();
}

public class HttpLoanApplicationRepository : ILoanApplicationRepository
{
    /// <summary>
    /// Gets the next available application via /REST/Ids/Next
    /// </summary>
    public int GetNextApplicationId()
    {
        var req = WebRequest.Create("http://server/REST/IDs/Next");

        //etc., etc.
    }
}
    
risposta data 18.03.2013 - 22:51
fonte
1

Metti la documentazione nell'interfaccia.

Perché?

Considera solo gli utenti della tua classe. Stanno codificando contro l'interfaccia, non sulla classe concreta, quindi se non ci sono commenti sull'interfaccia, non li vedranno.

    
risposta data 18.03.2013 - 22:43
fonte
0

Se i tuoi commenti sono identici sia nell'interfaccia che nella classe (che è quello che sto dicendo se non sai dove inserire i commenti) allora penserei che qualunque commento tu abbia sarà proverbiale inutile commenti di cui la gente si lamenta sempre. Tuttavia, non consiglierei di non commentare l'uno o l'altro. Suggerirei di inserire commenti significativi in entrambe le classi. Sicuramente ci sono differenze significative tra l'interfaccia e il modo in cui la classe concreta ha effettivamente scelto di implementare l'interfaccia che vale la pena notare.

    
risposta data 19.03.2013 - 16:13
fonte

Leggi altre domande sui tag