Hallo,
ich möchte für verschiedene Dateioperationen (Copy, Move, ...) separate Klassen anlegen. All diese Operationen sollen die Methode "-(void) run" implementieren.
Jetzt möchte ich EINEN Decorator für alle Operationen schreiben welcher beispielsweise einen Log-Eintrag beim Aufruf von "run" erzeugt, egal um welche konkrete Operation es sich handelt und den Aufruf von "run" an eine spezielle Operation weiterreicht.
Ich komme von PHP und dort würde ich das Ganze mit einem Interface "Operation" lösen welches zum Einen von den konkreten Klassen Move, Copy, ... und zum Anderen von meinem Dekorator OperationLog implementiert wird. Dann würde ich jede neue Operation in ein Objekt von OperationLog im Konstruktor übergeben. Jeder run()-Aufruf wird dann geloggt und entsprechend an die spezielle Operation weitergereicht.
Gibt es in Objective-C eine elegante Methode das Decorator-Pattern umzusetzen? Oder gibt es einen anderen Weg das sauber zu lösen?
Wichtig ist mir dass die verschiedenen Operationen nicht mit dem Logging überladen werden. Das Logging soll nur ein Beispiel sein - im Prinzip geht es mir später um Erweiterung der Funktionalität der Operationen, welche für alle Operationen dieselbe sein wird, z.B. auch das Versenden von einem Event 'Operation started'.
ich möchte für verschiedene Dateioperationen (Copy, Move, ...) separate Klassen anlegen. All diese Operationen sollen die Methode "-(void) run" implementieren.
Jetzt möchte ich EINEN Decorator für alle Operationen schreiben welcher beispielsweise einen Log-Eintrag beim Aufruf von "run" erzeugt, egal um welche konkrete Operation es sich handelt und den Aufruf von "run" an eine spezielle Operation weiterreicht.
Ich komme von PHP und dort würde ich das Ganze mit einem Interface "Operation" lösen welches zum Einen von den konkreten Klassen Move, Copy, ... und zum Anderen von meinem Dekorator OperationLog implementiert wird. Dann würde ich jede neue Operation in ein Objekt von OperationLog im Konstruktor übergeben. Jeder run()-Aufruf wird dann geloggt und entsprechend an die spezielle Operation weitergereicht.
Gibt es in Objective-C eine elegante Methode das Decorator-Pattern umzusetzen? Oder gibt es einen anderen Weg das sauber zu lösen?
Wichtig ist mir dass die verschiedenen Operationen nicht mit dem Logging überladen werden. Das Logging soll nur ein Beispiel sein - im Prinzip geht es mir später um Erweiterung der Funktionalität der Operationen, welche für alle Operationen dieselbe sein wird, z.B. auch das Versenden von einem Event 'Operation started'.