csharp / intermediate
Snippet
Abhängigkeitsabstraktion für die Testbarkeit
Indem Sie Interfaces anstelle von konkreten Klassen injizieren, entkoppeln Sie Ihren Code, was es einfach macht, reale Implementierungen während des Testens gegen Mocks auszutauschen.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface IDatabase { void Save(string data); }public class DataService{private readonly IDatabase _db;public DataService(IDatabase db) => _db = db;public void Process(string input){// Logic here_db.Save(input);}}
Erklärung
1
private readonly IDatabase _db;
Deklariert ein privates Feld für das Interface, um die injizierte Abhängigkeit zu speichern.
2
public DataService(IDatabase db)
Der Konstruktor erfordert eine Implementierung von IDatabase, was Dependency Injection erleichtert.