Es gibt ein Muster namens Constructor injection. Dieses Muster ist hauptsächlich nützlich für das Komponententesten und das Teilen der Logik. Hier ist ein Beispiel
public class SomeClass
{
private ISomeInterface _someInterface;
public SomeClass() : this (null){} //here mostly we pass concrete implementation
//of the interface like this(new SomeImplementation())
public SomeClass(ISomeInterface someInterface)
{
_someInterface = someInterface;
//Do other logics here
}
}
Wie Sie hier sehen, werden Komponententests leicht durch die Weitergabe gefälschte Implementierung sein. Zusätzlich wird die Logik geteilt (DRY). Und machen Sie die ganze Logik innerhalb des Konstruktors, der die höchste Anzahl an Parametern annimmt
Aber in Ihrem Fall wird Null übergeben, so dass ein Kontext basiert. Ich muss wissen, was dein Kontext ist.
Siehe: [C# -Konstruktorverkettung] (http://stackoverflow.com/q/1814953/) –
Es räumt die API ein wenig auf und reduziert die Codeverdopplung durch Wiederverwendung des implizierten Einzelparameterkonstruktors. – JosephHirn