Forwarding (Softwareentwicklung)
aus Wikipedia, der freien Enzyklopädie
Forwarding ist in objekt-orientierten Programmiersprachen eine Technologie, mit der Nachrichten, die ein Empfänger nicht versteht, weitergeleitet werden können.
[Bearbeiten] Anwendungsgebiete
Durch Forwarding lassen sich Objekte als Stellvertreter (Proxys) anderer Objekte implementieren. Erhält ein solche Stellvertreter eine Nachricht, die es selbst nicht bearbeiten kann, so leitet es diese an das vertretene Objekt weiter, welches es gegebenenfalls erst erzeugt oder etwa von einem langsameren Speicher holt.
Auch können auf diese Weise Objekte in die Nachrichtenkette "geschmuggelt" werden, um etwa ein entferntes Objekt auf einem anderen Rechner im Netzwerk anzusprechen oder Key-Value-Observing zu implementieren.
[Bearbeiten] Beispiel
In Objective-C wird, wenn eine Nachricht von einem Objekt nicht verstanden wird, die Instanzmethode -forwardInvocation: (NSObject)
ausgeführt. Dort kann die Nachricht weitergeleitet werden:
- (void)forwardInvocation:(NSInvocation*)message { SEL selector = [invocation selector]; if( [VertretenerKlasse instancesRespondsToSelector:aSelector] ) // faule Erzeugung des Objektes if( ![self vertretener] ) { vertretener = … [self setVetretener:vertretener]; } [message invokeWithTarget:[self vertretener]]; else [self doesNotRecognizeSelector:selector]; }