Código Comentando: Você colocar seus comentários de código em Interfaces ou em classes concretas, ou ambos? [duplicado]

StackOverflow https://stackoverflow.com/questions/1875440

  •  18-09-2019
  •  | 
  •  

Pergunta

Esta questão já tem uma resposta aqui:

O que é a melhor prática em documentar classes e interfaces. Diga se você tiver uma classe concreta chamado Foo, que deriva de uma interface chamada IFoo. Onde você colocar seus comentários para os seus métodos? Você duplicar os seus comentários sobre a interface, bem como a classe concreta?

Aqui está um exemplo onde os comentários são duplicados:

public class Foo : IFoo
{
    /// <summary>
    /// This function does something
    /// </summary>        
    public void DoSomething()
    {
    }
}

public interface IFoo
{
    /// <summary>
    /// This function does something
    /// </summary>        
    void DoSomething();
}
Foi útil?

Solução

Gostaria de colocar comentários em ambos.

Em interfaces de I quis comentar sobre a intenção por trás os membros de interface e utilização.

Em implementações que eu gostaria de comentar sobre as razões para a implementação específica.

Outras dicas

Eu geralmente colocá-los em ambos, no entanto, eles não dizem a mesma coisa. O comentário do interface deve descrever a finalidade resumo deste método / interface. Enquanto o comentário de concreto vai falar sobre os detalhes de implementação do método / classe no contexto do propósito do interface.

eu colocá-los em ambos, mas é uma dor mantê-los em sincronia, quando em dúvida eu só colocá-los na interface.

Eu faço isso porque eu como a dica de ferramenta quando usando o código, que quase sempre deve estar usando a interface ...

O código de exemplo não usa implementação de interface explícita. O cliente do seu código vai precisar de ambos desde que ele / ela pode invocar o método seja através de um objeto de classe ou de referência interface. Com a implementação de interface explícita pode omitir o comentário método de classe uma vez que o cliente nunca pode vê-lo. Isso supõe que você está usando documentação XML para gerar informações IntelliSense.

Ambos, mas eu gostaria que foi construído em funcionalidade para mantê-los em sincronia

A <referTo>System. .... </referTo> tag para ligar os comentários seria ideal

Eu realmente não usá-los em tudo. Em vez disso eu certifique-se de estruturar o código e nomear todos os métodos e variáveis ??de uma forma que é óbvio que eles fazem sem comentários. O problema com os comentários é que eles não compilar e não executar e não são testados por seus testes de unidade, pelo que a sua praticamente impossível para mantê-los em sincronia com o código.

Apenas para interfaces. Porque neste caso eu não preciso sincronizá-los. Meu IDE me ajuda a ver comentários de interface em classes concretas. E gerador de documentos api faz o mesmo.

O ideal é que apenas as necessidades de interface a serem documentadas, uma vez que define o contrato que todas as necessidades de implementação concreta para cumprir.

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