Wir haben also eine Schnittstelle wie diese
/// <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();
}
Kürzlich haben wir eine Dokumentationsstory gespielt, in der es darum ging, wie oben beschrieben, eine ausreichende Menge an XML-Dokumentation zu generieren und sicherzustellen. Dies verursachte jedoch eine Menge Doppelarbeit in der Dokumentation. Beispielimplementierung:
/// <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
}
}
Wie Sie sehen können, ist die Methodendokumentation ein direkter Rip von der Oberfläche.
Die große Frage ist, ist das eine schlechte Sache? Mein Bauch sagt mir ja wegen der Vervielfältigung, aber vielleicht auch nicht?
Wir haben auch eine ähnliche Vervielfältigung der Dokumentation mit override
Funktionen und virtual
Funktionen.
Ist das schlecht und sollte vermieden werden oder nicht? Lohnt es sich überhaupt noch?