Ich frage mich, ob dies unter einem Strategie-Muster fällt:Ist das ein Strategie-Muster?
Ich habe eine Liste von IConverter (Sie konvertieren Dateien in Ingame Assets). Sie sitzen alle in einem ConverterManager. Jeder IConverter hat einen Erweiterungstyp, nach dem er sucht. Sagen wir, wir haben eine Datei mit der Erweiterung .exe. Der ConverterManager sucht nach dem Konverter, der nach der EXE-Erweiterung sucht. Wenn es existiert, wird es den Pfad der Datei durchlaufen, wenn nicht, wird es nichts tun.
Ich frage mich, ob dies ein Strategie-Muster ist, obwohl ich bin zu berechnen, welches Verhalten basierend auf der Erweiterung der Datei zu wählen.
Vielen Dank im Voraus.
Können Sie mir hier helfen? Folgt mein Beispiel nicht dem Prinzip der einfachen Verantwortung, weil mein ConverterManager alle Konverter enthält und sie nach Erweiterungstyp auswählt oder hat er etwas mit den Konvertern zu tun? Derzeit hält der ConverterManager die Konverter und wählen Sie den einen auf der gegebenen Erweiterung (der IConverter gibt die Erweiterung zurück) und dann der IConverter die Umwandlung in das Asset. – patrick
Ich bin mir immer noch nicht sicher, welche Klasse den ausgewählten IConverter basierend auf der Erweiterung verwendet. –
Nun, ich habe eine Klasse, die alle Dateien im Asset-Ordner liest. Wir könnten dann eine Liste wie "test.txt, test2.exe, test3.js" haben. Wenn sie alle gefunden sind, wird die Liste der Dateien durchlaufen und jedes einzelne an den ConverterManager gesendet. Dann findet der ConverterManager den IConverter basierend auf der Erweiterung und verwendet die Funktion ProcessFile (path) darauf. (Es wird den IConverter nicht zurück in die filereader-Klasse zurückgeben). Das einzige, was der ConverterManager zurückgibt, ist ein Antwortdatenobjekt, das zeigt, was bei der Konvertierung passiert ist (aber das ist nicht wirklich relevant). – patrick