csharp / intermediate
Snippet
Modulares Testen durch Interface-Injection ermöglichen
Indem Sie im Konstruktor ein Interface anstelle einer konkreten Klasse verlangen, entkoppeln Sie die Geschäftslogik von der Infrastruktur. Dies ermöglicht Unit-Tests, da Sie eine 'Mock'-Implementierung des Interfaces injizieren können, die keine echte Datenbank oder ein Dateisystem berührt.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface IDataStore { void Save(string data); }public class Processor{private readonly IDataStore _store;public Processor(IDataStore store) => _store = store;public void Run(string input){// Logic here..._store.Save(input);}}
Erklärung
1
public interface IDataStore
Definiert einen Vertrag zum Speichern von Daten, ohne festzulegen, wie dies geschieht.
2
public Processor(IDataStore store)
Der Konstruktor akzeptiert jedes Objekt, das das Interface implementiert (Dependency Injection).