Workshop: Makro-gesteuerte Dateiverarbeitung

Kommunikationsprobleme: Welche Methode aufrufen ?

Es stellt sich an dieser Stelle die Frage: Wie ruft das Hauptprogramm nun die Methoden aus den Skripten auf? Denn eigentlich kann es ja gar nicht wissen, was sich in den Skripten befindet.

Diese Frage der Kommunikation ist dabei per Interfaces definiert. In der Solution gibt es ein separates Projekt, das nur für die Definition von Interfaces für genau diese Kommunikation gedacht ist. Das Projekt enthält nur eine Datei namens interfaces.cs, und diese Datei definiert zwei Schnittstellen.

public interface IFilePatternMatcher {
bool FileMatchesPattern(FileInfo fileInfo);
}

public interface IFileActionExecutor {
void Execute(FileInfo fileInfo);
}

Das erste Interface IFilePatternMatcher ist für die Skripten gedacht, die die Dateifilter darstellen. In einem solchen Skript muss sich also eine Klasse befinden, die dieses Interface implementiert. Das zweite Interface ist für die Aktions-Skripte gedacht: Diese Skripte müssen also eine Klasse enthalten, die das IFileActionExecutor Interface definiert.