Nous avons donc une interface comme ça
/// <summary>
/// Interface for classes capable of creating foos
/// </summary>
public interface ICreatesFoo
{
/// <summary>
/// Creates foos
/// </summary>
void Create(Foo foo);
/// <summary>
/// Does Bar stuff
/// </summary>
void Bar();
}
Récemment, nous avons joué une histoire de documentation qui impliquait de générer et de s'assurer qu'il y avait beaucoup de documentation XML comme ci-dessus. Cela a cependant causé beaucoup de duplication de la documentation. Exemple d'implémentation:
/// <summary>
/// A Foo Creator which is fast
/// </summary>
public class FastFooCreator : ICreatesFoo
{
/// <summary>
/// Creates foos
/// </summary>
public void Create(Foo foo)
{
//insert code here
}
/// <summary>
/// Does Bar stuff
/// </summary>
public void Bar()
{
//code here
}
}
Comme vous pouvez le voir, la documentation de la méthode est une extraction directe de l'interface.
La grande question est, est-ce une mauvaise chose? Mon instinct me dit oui à cause de la duplication, mais là encore peut-être pas?
En outre, nous avons d'autres duplications de documentation similaires avec des override
fonctions et des virtual
fonctions.
Est-ce mauvais et devrait être évité ou non? Est-ce que cela en vaut même la peine?
Réponses:
En général, je n'ajouterais une nouvelle documentation aux méthodes de l'implémentation que si cette implémentation doit être mentionnée.
Dans javadoc, vous pouvez créer un lien vers d'autres méthodes, ce qui vous permettrait de créer simplement un lien dans l'implémentation vers la documentation de la méthode dans l'interface. Je pense que c'est ainsi que cela est censé se faire dans .Net (basé sur ma lecture de la documentation en ligne, pas sur ma propre expérience):
La documentation de l'
<see/>
élément: http://msdn.microsoft.com/en-us/library/acd0tfbe.aspxla source
Collection<T>
et souhaite remplacer saCount
documentation XML de propriété.