Entonces tenemos una interfaz como esta
/// <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();
}
Recientemente, reprodujimos una historia de documentación que implicaba generar y garantizar que haya mucha documentación XML como la anterior. Sin embargo, esto causó mucha duplicación de documentación. Implementación de ejemplo:
/// <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
}
}
Como puede ver, la documentación del método es una copia directa de la interfaz.
La gran pregunta es, ¿es esto algo malo? Mi instinto me dice que sí debido a la duplicación, pero de nuevo tal vez no.
Además, tenemos otra duplicación de documentación similar con override
funciones y virtual
funciones.
¿Es esto malo y debe evitarse o no? ¿Vale la pena incluso?
Respuestas:
En general, solo agregaría nueva documentación a los métodos de implementación si hay algo específico sobre esa implementación que deba mencionarse.
En javadoc puede vincular a otros métodos, lo que le permitiría crear un enlace en la implementación a la documentación del método en la interfaz. Creo que así es como se debe hacer en .Net (basado en mi lectura de la documentación en línea, no en mi propia experiencia):
La documentación para el
<see/>
elemento: http://msdn.microsoft.com/en-us/library/acd0tfbe.aspxfuente
Collection<T>
y quiero anular susCount
documentos XML de propiedad.